我有一个简单的复选框:
r = new Ext.form.Checkbox({
listeners: {
check: function(checkbox, checked) {
}
}
}
r.setValue(true);
如何检查复选框而不进行fireevent检查(我想通过鼠标点击进行检查)? (setValue不起作用)。
答案 0 :(得分:28)
您应该在设置值之前暂停事件并在此之后恢复事件。例如:
myCheckBox.suspendEvents(false); // Stop all events.
//Be careful with it. Dont forget resume events!
myCheckBox.setValue(!myCheckBox.getValue()); // invert value
myCheckBox.resumeEvents(); // resume events
答案 1 :(得分:1)
为什么不设置r.checked = true,这不起作用吗?
答案 2 :(得分:1)
为什么不设置r.checked = true,这不起作用吗?
设置选中的属性仅对非渲染控件有影响,以分配初始控制值。渲染后,您无法使用它来更改值。
暂停/恢复事件是改变控制值而不发送通知的好习惯。
此外,您可以将检查状态立即置于dom元素:
item.el.dom.checked = true;
答案 3 :(得分:0)
我在谷歌搜索之前已经尝试了接受的答案,但它在4.1.3中没有用。以下是:
myCheckBox.setRawValue(true);
希望这有助于未来的googlers。
答案 4 :(得分:0)
在设置值之前调用suspendEvents(false)
,之后调用resumeEvents()
是比setRawValue
更通用的方法,因为如果您使用转换器(例如,1
是{{1} }}和true
是0
)它们将继续有效。