设置数字字段的值而不在Sencha Touch中触发“更改”事件

时间:2013-06-04 15:58:23

标签: events extjs sencha-touch sencha-touch-2

我在Sencha Touch中有一个数字字段和一个列表。当我单击列表中的项目时,我正在执行AJAX请求以将数据发送到服务器。但是,如果数字字段中有数据,我想在单击列表时清除它。

我这样做没有问题(我将值设置为空字符串),但是,在数字字段上触发了change事件。这导致另一个不需要的AJAX请求运行。有没有办法清除数字字段而不解雇更改事件? SuspendEvents不起作用,因为清除数字字段需要一个事件。

有什么想法或建议吗?谢谢!

我尝试过的代码行:

suspendEvents(); me.getWhatScreen().down('numberfield[name=caseNumber]').setValue(''); {{1 } {/ p>

resumeEvents(true); me.suspendEvents(); me.getWhatScreen().down('numberfield[name=caseNumber]').setValue('');

2 个答案:

答案 0 :(得分:22)

执行suspendEvents(),更新您的号码字段,然后执行resumeEvents()

<强>更新

var control = me.getWhatScreen().down(...);
control.suspendEvents();
control.setValue('');
control.resumeEvents(false);

答案 1 :(得分:3)

Sencha Touch 2.4的更新

正确的顺序是

var control = me.getWhatScreen().down(...);
control.suspendEvents();
control.setValue('');
control.resumeEvents(true);

resumeEvents采用布尔参数 discardQueuedEvents