首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单选按钮$(“# jQuery”).change(...)取消选择期间未触发

问单选按钮$(“# jQuery”).change(...)取消选择期间未触发
EN

Stack Overflow用户
提问于 2011-03-03 12:52:35
回答 8查看 351.3K关注 0票数 174

大约一个月前,米特的问题没有得到回答。不幸的是,我现在也遇到了同样的情况。

http://api.jquery.com/change/#comment-133939395

情况是这样的:我使用jQuery来捕获单选按钮中的更改。当单选按钮被选中时,我将启用一个编辑框。当取消选中单选按钮时,我希望禁用编辑框。

使能起作用。当我在组中选择不同的单选按钮时,不会触发change事件。有人知道怎么解决这个问题吗?

代码语言:javascript
复制
<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>
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-03-03 13:08:05

看起来change()函数只在您选中某个单选按钮时调用,而不是在取消选中它时调用。我使用的解决方案是将change事件绑定到每个单选按钮:

代码语言:javascript
复制
$("#r1, #r2, #r3").change(function () {

或者,您可以为所有单选按钮指定相同的名称:

代码语言:javascript
复制
$("input[name=someRadioGroup]:radio").change(function () {

这是一个有效的jsfiddle example (更新自Chris Porter的评论)。

根据@Ray的评论,您应该避免在名称中使用带有.的名称。这些名称在jQuery 1.7.2中有效,但在其他版本(jsfiddle example.)中无效。

票数 315
EN

Stack Overflow用户

发布于 2011-03-03 13:16:39

您可以按名称一次绑定到所有单选按钮:

代码语言:javascript
复制
$('input[name=someRadioGroup]:radio').change(...);

此处的工作示例:http://jsfiddle.net/Ey4fa/

票数 22
EN

Stack Overflow用户

发布于 2013-12-01 01:30:20

这通常适用于我:

if ($("#r1").is(":checked")) {}

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5176803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档