绑定功能未检测到jquery单选按钮更改

时间:2012-02-07 14:49:05

标签: jquery button detection radio

使用以下html:

<input type = "radio" name = "who" class = "number" value = "0" > text </input>
<input type = "radio" name = "who"   class = "number" value = "1" > text </input>
<input type = "radio" name = "numberS"  class = "number"  value = "1" > text </input>
<input type = "radio" name = "numberS"  class = "number"  value = "2" > text</input>

以及以下两点javascript:

$('input[class="number"]').bind('change', function (){
    alert("Change!");
    })

function change_radio_button(n){
   $('input[class="number"]')[n].checked = true;
   }

原样,这一切都很完美:选择一个新的单选按钮会调用警报,并调用change_radio_button()会更改选中的单选按钮。

但是当调用change_radio_button()并且单选按钮选择发生更改时,绑定函数不会检测到更改 - 警报不会发生。为什么不? jquery函数是否仅检测手动更改?

1 个答案:

答案 0 :(得分:2)

如果你有一个类,那么使用类选择器。使用class作为属性选择器不是最佳做法。

$('input.number').bind('change', function (){
    alert("Change!");
});

您希望触发更改事件使用trigger或只需调用change()方法。当您以编程方式更改单选按钮时,将不会更改此事件。

function change_radio_button(n){
   $('input.number')[n].checked = true;
   $('input.number').trigger('change');
}