即使在复选框被选中时也会出错
问题描述:
从我发现的所有示例中,如果选中复选框,则使用is(':checked')
应返回true;否则返回false。在我的情况下,它在两种情况下都返回false。我的错误是什么?即使在复选框被选中时也会出错
{
xtype: 'checkbox',
boxLabel: 'Show message',
id: 'mainBox',
handler: function() {
alert($(this).is(':checked'));
}
答
由于this
内部的ExtJS的事件处理程序没有引用的DOM元素代替this
将指ExtJS的复选框对象。 jQuery将无法使用extjs对象引用找出目标元素。相反,你必须复选框将返回的选中状态值的getValue()方法,所以
尝试
{
xtype: 'checkbox',
boxLabel: 'Show message',
id: 'mainBox',
handler: function (el) {
alert(el.getValue());
}
}
答
,你可以在jQuery文档中读取时,.is('...')函数返回一个jQuery对象。
如果你想要某种布尔作为返回值的,你可以试试下面的代码:
alert($(this).is(':checked').length > 0);
但对于一个复选框元素,使用“选中”属性应太:
alert(this.checked);
你甚至可以试试这个,如果你想使用jQuery:
alert($(this).attr('checked') === 'checked');
答
按照到ExtJS documentation,我会尝试这样的:
{
xtype: 'checkbox',
boxLabel: 'Show message',
id: 'mainBox',
handler: function (field , value) {
alert(value);
}
}
+0
@ user1960836这能为你工作吗? – CodeGodie 2014-10-29 16:23:15
哪里是你的代码? – hindmost 2014-10-28 13:09:34
这段代码产生了什么?一个''或其他什么?问题是,这是什么? – TCHdvlp 2014-10-28 13:09:45
看来你错过了处理函数的结尾大括号。 $(this)是指什么?请提供您的完整代码,以便我们可以看到您想要完成的任务。谢谢。 – CodeGodie 2014-10-28 13:10:44