jQuery单选按钮的onChange事件不起作用

7 浏览
0 Comments

jQuery单选按钮的onChange事件不起作用

我按照这个示例来捕获一个radio button组的onChange() jQuery事件:

JQuery $(#radioButton).change(...) not firing during de-selection

但在我的情况下,那个示例中给出的解决方案不起作用。我在我的JSP中生成了以下内容:

Prime                             
Not Prime

JS:

$(document).ready(function() {      
    // 在radio变化时显示警告    
    $('input[name=object.reportEntity.reportEntityIsPrime]:radio').change(function () {
        alert('Radio Button clicked');
    }); 
}

警告没有显示出来。而且,还有这个错误:

语法错误,无法识别的表达式"input"

0
0 Comments

问题的原因是没有正确地委托事件。事件委托允许我们将一个事件监听器附加到父元素上,该事件监听器将对所有与选择器匹配的后代元素触发事件,无论这些后代元素是现在存在还是将来添加。

解决方法是使用正确的选择器,并且在选择器中添加双引号。例如:

$('body').on('change', 'input[name="object.reportEntity.reportEntityIsPrime"]:radio', function() {
    alert('Radio Button clicked');
});

另外,需要注意的是,在ready函数的末尾缺少);

解决方法的演示可以在JSFiddle链接中查看。

此外,还可以查看jQuery Understanding Event Delegation文档以获取更多信息。

0
0 Comments

问题:jQuery单选按钮的onChange事件不起作用的原因是什么?有什么解决方法?

问题的原因:选择器字符串中的name属性没有被引用。

解决方法:在选择器字符串中引用name属性。

下面是一个例子:

$(document).ready(function() {
    // 在单选按钮改变时显示提示框
    $('input[name="object.reportEntity.reportEntityIsPrime"]:radio').change(function () {
        alert('单选按钮被点击');
    });
});

通过以上的修改,就可以解决jQuery单选按钮onChange事件不起作用的问题了。

0
0 Comments

问题:jQuery单选按钮onChange事件不起作用的原因以及解决方法

原因:在使用jQuery时,如果单选按钮的name属性中包含特殊字符或空格,可能会导致onChange事件无法正常工作。这是因为jQuery在选择器中使用引号时,特殊字符或空格会被解析为选择器的一部分,从而导致选择器无法正确匹配到对应的元素。

解决方法:使用引号将单选按钮的name属性值包裹起来,以确保选择器能够正确匹配到对应的元素。例如,可以使用如下的方式来选择单选按钮:

$('input[name="object.reportEntity.reportEntityIsPrime"]:radio')

通过以上的修改,可以确保jQuery选择器能够正确匹配到包含特殊字符或空格的name属性值,从而使onChange事件能够正常工作。这样就可以实现对单选按钮的改变事件进行监听和处理。

0