jQuery单选按钮onChange不起作用

时间:2015-11-03 19:08:09

标签: javascript jquery html

我按照这个例子来捕获单选按钮组的onChange()jQuery事件: JQuery $(#radioButton).change(...) not firing during de-selection

但就我而言,该示例中给出的解决方案无效。我从JSP生成了以下内容:

<input id="object.reportEntity.reportEntityIsPrime1" name="object.reportEntity.reportEntityIsPrime" type="radio" value="Y_YES" checked="checked"/>Prime                             

<input id="object.reportEntity.reportEntityIsPrime2" name="object.reportEntity.reportEntityIsPrime" type="radio" value="N_NO"/>Not Prime

JS:

$(document).ready(function() {      

    // Display Alert on Radio Change    
    $('input[name=object.reportEntity.reportEntityIsPrime]:radio').change(function () {
        alert('Radio Button clicked');
    }); 
}

警报未显示。还有,这是错误:

语法错误,无法识别的表达式“输入”

3 个答案:

答案 0 :(得分:4)

您应该委派事件。

  

事件委托允许我们将单个事件监听器附加到   父元素,将为匹配a的所有后代触发   选择器,无论这些后代现在存在还是被添加到   将来

此外,您需要在选择器中添加",例如[name=""]请注意以下内容......

$('body').on('change', 'input[name="object.reportEntity.reportEntityIsPrime"]:radio', function() {
    alert('Radio Button clicked');
});
  • 旁注:您在);功能
  • 的末尾缺少ready

JSFiddle Link - 工作演示

此外,请务必查看jQuery Understanding Event Delegation docs以获取更多信息

答案 1 :(得分:1)

为您的名字使用引号,如下所示:

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

答案 2 :(得分:1)

在选择器字符串中引用name属性。

  $(document).ready(function() {      

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

    }