javascript - 复选框设置为单选按钮第二次单击故障

标签 javascript jquery html

我创建了一个函数,使我的复选框成为单选按钮,并且可以取消选中它们。 我遇到的问题是,当第二次更快地单击同一个框(不是快速双击)时,它什么也没做,就像它没有捕捉到事件一样。

它们成倍数乘以两个,共享名称。

checkbox name 1
checkbox2 name 1

checkbox3 name 2
checkbox4 name 2 ....

这是我的功能,除了那个小故障外,它运行良好。

$('#MyDiv').find('input[type="checkbox"]').click(function() {
    if (!$(this).is(':checked')) {
        $(this).prop('checked', false);
        return;
    }
    $('#MyDiv').find('input[type="checkbox"][name=' + $(this).attr('name') + ']').each(function() {
        $(this).prop('checked', false);
    });
    $(this).prop('checked', true);
});

HTML 示例:

<div id="MyDiv">
    <div>
        <p>
            <input id="MyDivUsage_Yes" type="checkbox" name="MyDivUsage"  />
            <label for="MyDivUsage_Yes">Yes</label>
            <input id="MyDivUsage_No" type="checkbox" name="MyDivUsage" />
            <label for="MyDivUsage_No">No</label>
        </p>

    </div>
</div>​

出于某种原因,它不能在 jsfiddle 上运行。

最佳答案

试试这个:

var checked = {};
    $('.desectable-radio').each(function (index) {
        checked[index] = this.checked;
        $(this).click(function () {
            if (checked[index])
                this.checked = false;
            for (var i in checked) {
                checked[i] = false;
            }
            checked[index] = this.checked;
        });
    });

fiddle :http://jsfiddle.net/dFDeX/1/

关于javascript - 复选框设置为单选按钮第二次单击故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13874967/

相关文章:

javascript - 如何让一个对象键依赖于同一对象中的另一个键?

javascript - 使用 Controller 和服务的 AngularJS 表单发布

JavaScript 计时器功能在 IE10 中不起作用,但它在 chrome 中起作用

html - 上传到服务器后,网站无法在移动浏览器上正确呈现

HTML:如何创建可缩放的布局,并将元素粘在边缘

javascript - JQuery 滚动列表框模仿与键盘导航?

javascript - 关于 Angular 1.5 组件生命周期 Hook

javascript - 使用 jquery load() 将内容添加到选项卡式导航中

javascript - 使用 JQuery/Javascript 访问 iFrame URL

jquery - 获取元素的背景颜色并将其设置为其他元素的边框颜色