我有簡單的複選框:如何在不觸發更改事件的情況下檢查複選框?
r = new Ext.form.Checkbox({
listeners: {
check: function(checkbox, checked) {
}
}
}
r.setValue(true);
如何檢查無fireevent檢查(我想fireevent從鼠標單擊只檢查)複選框? (setValue不起作用)。
我有簡單的複選框:如何在不觸發更改事件的情況下檢查複選框?
r = new Ext.form.Checkbox({
listeners: {
check: function(checkbox, checked) {
}
}
}
r.setValue(true);
如何檢查無fireevent檢查(我想fireevent從鼠標單擊只檢查)複選框? (setValue不起作用)。
您應該在設置值之前掛起事件並在此之後恢復事件。例如:
myCheckBox.suspendEvents(false); // Stop all events.
//Be careful with it. Dont forget resume events!
myCheckBox.setValue(!myCheckBox.getValue()); // invert value
myCheckBox.resumeEvents(); // resume events
爲什麼不只是設置r.checked = true,這是行不通的?
爲什麼不只是設置r.checked = true,這是行不通的?
設置選中的屬性只會影響非呈現控件分配初始控制值。渲染後,您不能使用它來更改值。
掛起/恢復事件是一種很好的做法,可以在不發送通知的情況下更改控制值。你
也可以把選中的狀態immedially到DOM元素:
item.el.dom.checked = true;
我已經使用Google之前嘗試接受的答案,但它並沒有在4.1.3工作。下面做了:
myCheckBox.setRawValue(true);
希望這有助於未來的谷歌。
調用suspendEvents(false)
之前設置的值,並resumeEvents()
事後比setRawValue
一個更通用的方法,因爲如果你使用轉換器(比方說,1
是true
和0
是false
),他們將繼續工作。
只需注意一點:通過使用「setRawValue」,第一個取消選中的事件不會觸發。資料來源:http://www.sencha.com/forum/showthread.php?263404-Checkbox-does-not-fire-quot-change-quot-event-on-the-first-change-after-setRawValue(true) &S = 2fb682a6d30f35675c73e5c6230c476d – pvieira 2013-07-14 11:36:03