为什么.change仅在我选择元素时才有效?

时间:2011-06-29 15:01:34

标签: jquery html

我有this代码:

Yes <input type="radio" value="txt1" name="myRadio" id="text1" checked=true />
No <input type="radio" value="txt2" name="myRadio" id="text2" />

$('#text1').change(function() {
    alert('changed');
    return;
});

该处理程序只有id = text1(是的,我应该在名称上执行此操作)。但它无论如何都应该有效。实际上它只有在我选中复选框text1时才有效,而不是在我选择text2时。

为什么呢?我该如何解决这个问题?

3 个答案:

答案 0 :(得分:2)

这仅适用于text1,因为您的事件仅附加到id = text1的元素。你还有什么想让它发挥作用。是的,您必须使用名称“myRadio”才能使它同时工作。

答案 1 :(得分:2)

将输入包装在div中。现在,你只是引用了第一个输入。

<div id="container">
Yes <input type="radio" value="txt1" name="myRadio" id="text1" checked=true />
No <input type="radio" value="txt2" name="myRadio" id="text2" />
</div>

$('#container input').click(function() {
    alert('changed');
    return;
});

答案 2 :(得分:1)

将之前的答案包装在div中会改变页面布局。如果您需要在不影响页面的情况下执行此操作,则可以按名称选择无线电元素:

$('input[name="myRadio"]').change(function() {
    alert('changed');
    return;
});