大约一个月前,米特的问题没有得到回答。不幸的是,我现在也遇到了同样的情况。
http://api.jquery.com/change/#comment-133939395
情况是这样的:我使用jQuery来捕获单选按钮中的更改。当单选按钮被选中时,我将启用一个编辑框。当取消选中单选按钮时,我希望禁用编辑框。
使能起作用。当我在组中选择不同的单选按钮时,不会触发change事件。有人知道怎么解决这个问题吗?
<input type="radio" id="r1" name="someRadioGroup"/>
<script type="text/javascript">
$("#r1").change(function () {
if ($("#r1").attr("checked")) {
$('#r1edit:input').removeAttr('disabled');
}
else {
$('#r1edit:input').attr('disabled', true);
}
});
</script>发布于 2011-03-03 13:08:05
看起来change()函数只在您选中某个单选按钮时调用,而不是在取消选中它时调用。我使用的解决方案是将change事件绑定到每个单选按钮:
$("#r1, #r2, #r3").change(function () {或者,您可以为所有单选按钮指定相同的名称:
$("input[name=someRadioGroup]:radio").change(function () {这是一个有效的jsfiddle example (更新自Chris Porter的评论)。
根据@Ray的评论,您应该避免在名称中使用带有.的名称。这些名称在jQuery 1.7.2中有效,但在其他版本(jsfiddle example.)中无效。
发布于 2011-03-03 13:16:39
您可以按名称一次绑定到所有单选按钮:
$('input[name=someRadioGroup]:radio').change(...);此处的工作示例:http://jsfiddle.net/Ey4fa/
发布于 2013-12-01 01:30:20
这通常适用于我:
if ($("#r1").is(":checked")) {}
https://stackoverflow.com/questions/5176803
复制相似问题