我正在使用Extjs 2.3.0
我有一个单选控件,在我的需求中,我想添加一个可以取消选中单选按钮的功能。(通常我们不会取消选中收音机),我如下解决了这个问题
{ boxLabel: 'Yes', name: 'Yes', inputValue: 'Yes', xtype: 'radio',
onClick: function (e) {
if (this.checked) {
this.setValue(false);
} else {
this.setValue(true);
}
}
}
这很管用
现在,我的问题是,如果我单击单选按钮,上面的代码可以正常工作,但是如果我单击单选按钮标签,单击事件会触发两次。这是方框标签“是”。
由于事件触发两次,收音机无法检查。
我不明白为什么事件在标签点击时触发两次,而不是在收音机点击时触发。任何人都可以有任何解决方案或变通方法吗?
1条答案
按热度按时间bzzcjhmw1#
嗯,不可检查的无线电台,听起来很奇怪:)
无论如何,您正在覆盖配置中收音机的onClick方法(继承自Ext.form.CheckBox),如下所示:
因此,您需要像在原始函数中那样停止事件传播。此外,我建议也使用toggleValue函数,因为这可以确保正确取消选中名称为的其他单选:
顺便说一下,最好的方法可能是创建一个扩展Ext.form.RadioBox的新类。看看这把小提琴。