flex 4 datefield 不发送清除事件

发布于 2024-11-15 12:21:46 字数 419 浏览 3 评论 0原文

这是我的日期字段:

<mx:DateField id="date" 
    formatString="DD-MM-YYYY" selectableRange="{DTselectableRange}" 
    change="handleChange()" editable="true"  clear="dateCleared(event)"/>

我想检测清除事件,adobe ref 说:

clear 事件在用户 从列表中选择“清除”(或“删除”) 文本上下文菜单。

但 dateCleared 函数从未被调用过...我需要它,因为当用户删除它时我必须将 selectedDate 设置为 null...

请帮助我...

here is my datefield:

<mx:DateField id="date" 
    formatString="DD-MM-YYYY" selectableRange="{DTselectableRange}" 
    change="handleChange()" editable="true"  clear="dateCleared(event)"/>

i want to detect clear event, adobe ref say:

clear Event is dispatched when the user
selects 'Clear' (or 'Delete') from the
text context menu.

but dateCleared function in never called...I need it beacause I have to set selectedDate to null when user delete it...

Please help me...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

紫罗兰の梦幻 2024-11-22 12:21:46

我可以确认,当从文本内容菜单中选择“删除”时,mx.controls.DateField 不会调度 clear 事件。我也没有运气为可编辑的 mx.controls.TextInputspark.components.TextInput 调度 clear 事件。嗯....

您可以做的是在 handleChange 事件侦听器中处理控件值的更改,并在那里设置您的 selectedDate 值。

像这样的东西:

private var selectedDate:Date;

private function handleChange(date:Date):void {
    if (date == null) {
        selectedDate = null;
    }       
    // your existing handleChange code here
}

另外,我会改变这个:

<mx:DateField change="handleChange()" />

到这个

<mx:DateField change="handleChange(DateField(event.target).selectedDate)" />

I can confirm that mx.controls.DateField does not dispatch a clear event when selecting "Delete" from the text content menu. I've also had no luck getting a clear event to be dispatched for editable mx.controls.TextInput and spark.components.TextInput. Hmm....

What you can do is handle a change in the value of the control in your handleChange event listener and set your selectedDate value there.

Something like this:

private var selectedDate:Date;

private function handleChange(date:Date):void {
    if (date == null) {
        selectedDate = null;
    }       
    // your existing handleChange code here
}

Also, I would change this:

<mx:DateField change="handleChange()" />

to this

<mx:DateField change="handleChange(DateField(event.target).selectedDate)" />
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文