javascript - 使用 Javascript 选择其中一项时如何禁用复选框列表中的其他项目

标签 javascript jquery asp.net checkboxlist

我正在表单中使用复选框列表。 我的复选框列表中有多个选项。 当选中其中一个选项时,应禁用其他选项,以便用户不允许选择其他选项。

我已经在事件处理程序中用 C# 完成了它,但我不能再使用回发 我们如何在 javascript 或 jquery 中做到这一点

    foreach (ListItem li in chk_mycheckbox.Items)
            {

                if ((!(li.Text.ToString().Contains("Unknown"))))
                {
                    li.Enabled = false;

                }

            }

最佳答案

您可能实际上想要一组单选按钮。

例如

<li><input type="radio" name="gender" value="male">Male</li>
<li><input type="radio" name="gender" value="female">Female</li>

因为它只会强制执行一项选择。

但是,在当前场景中,您可以使用以下行循环遍历复选框并禁用任何未选中的复选框。 (这是使用jquery 1.6+)

$('input[type=checkbox]').each(function () {
    if(!$(this).is(':checked')){
        //if not checked
        $(this).prop('disabled', true);
    }
});

根据您的评论。

给出应禁用其他类别的复选框,例如“单选”。那么你的代码可能看起来像这样:

$(document).ready(function() {
    $('#formId input.single-selection').on('click', function (e) {
        var selectedCheckbox = $(this);
        if(selectedCheckbox.is(':checked')){
            $('#formId input[type=checkbox]').each(function () {
                if(selectedCheckbox[0] != $(this)[0]){
                    //if not selected checkbox
                    $(this).prop('disabled', true);
                    $(this).attr('checked', false);
                }
            });
        }else{
            $('#formId input[type=checkbox]').prop('disabled', false);
        }
    });
});

我还没有测试过,但我相信这就是你所需要的。只需将 id 和类替换为您正在使用的内容即可。

关于javascript - 使用 Javascript 选择其中一项时如何禁用复选框列表中的其他项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21707215/

相关文章:

javascript - Meteor 具有 blaze(网络)和 Angular(移动)

javascript - 选项卡中的 select() 函数 - Angular Bootstrap

jquery - 如何编写自动幻灯片循环?

javascript - $.ajax 调用不起作用

c# - 关闭 Word 文档时出错 : "The message filter indicated that the application is busy."

javascript - 使用 XmlHttpRequest 和纯 JavaScript 调用 WebMethods

javascript - AngularJS 表单 ng-attr

javascript - 带有 $(this) 的全局变量

javascript - 如何在Magento2 CMS中通过元素id将页面主体滚动到特定位置?

html - Asp.net MVC 不同的路由导致相对寻址问题