【问题标题】:checking/unchecking checkbox list jquery检查/取消选中复选框列表jquery
【发布时间】:2013-08-07 07:47:46
【问题描述】:

请检查下面给出的提琴手。

http://jsfiddle.net/ymtwK/3/

我想在选中一个时禁用所有其他...在创建的提琴手上按预期工作。但是当我取消选中已经选择的一项时,我希望所有这些都被启用...

我的代码有问题。请帮我解决它。

我也想知道是否有类似 on unclick 事件可用...

下面是我的代码..

$(".session_outcome_chk_list").click(function () {
    $('.session_outcome_chk_list').each(function () {
        if ($(this).is(":checked")) {
            $(this).removeAttr("disabled");
        } else {
            $(this).attr("disabled", true);
        }
    });
});

编辑:

我还需要在页面加载时执行相同的操作,例如在提交时选择一个复选框,在表单加载时它还应该检查天气是否已选中,然后禁用。

在页面加载时您已经选择了一个项目的表单的更新场景。

http://jsfiddle.net/ymtwK/17/

【问题讨论】:

  • 逻辑在put alert($(this).is(":checked"));之前有点错误if ($(this).is(":checked")) {你会明白的
  • 而且我认为Radio 按钮在您的情况下的用户体验方面将是不错的选择。
  • @SaurabhBayani tnx 的建议,实际上问题是这是一个已经实施的巨大系统,在其中我需要一些对其他领域有一些影响的小机会..
  • 哦!那你就无助了 ;-) 祝你好运。
  • @SaurabhBayani 你能帮我解决这个问题吗? stackoverflow.com/questions/18096641/…

标签: jquery checkbox checkboxlist


【解决方案1】:

你可以用一行代码做到这一点:

$('.session_outcome_chk_list').not(this).prop('disabled', this.checked);

此外,您应该绑定change() 事件,而不是click(),这样如果复选框的状态通过单击以外的方法(例如按键)发生更改,则代码将被执行。

Here's a fiddle


编辑:如果您希望代码在页面首次加载时运行,只需在绑定后触发事件(您还必须修改函数才能使其正常工作):

$('.session_outcome_chk_list').change(function () {
    $('.session_outcome_chk_list').not(':checked').prop('disabled', !!$('.session_outcome_chk_list:checked').length);
}).change(); // <-- triggers the change event

Here's another fiddle

【讨论】:

  • 嗨。 tnx 很多.. 你能帮我解决这个问题吗? stackoverflow.com/questions/18096641/… 将是一个很好的支持。
  • 请参阅问题的编辑部分。你的工作正常,但我希望在页面加载时也一样。
  • 每次我需要做同样的事情时加载。 (想象一个表单的更新场景,你已经在页面加载时选择了一个项目)
  • @mazraara 检查我的编辑,this fiddle。正如我在编辑中指出的那样,您需要稍微修改函数!
  • 可以使用click事件,唯一的限制是上面的代码只有在checkbox被点击时才会执行。例如,如果有人使用键盘检查复选框,它将不起作用。每次单击复选框时它也会触发,而 change 只会在复选框的状态更改时触发。我建议使用 change ,因为它适用于所有事件(点击、击键等),并且只会在复选框状态发生变化时触发。
【解决方案2】:

试试这个

DEMO

$(".session_outcome_chk_list").click(function () {
    var current=$(this);
    if (current.is(":checked")) {
         $('.session_outcome_chk_list').attr("disabled", true);
         current.removeAttr("disabled");
    }
    else {
         $('.session_outcome_chk_list').attr("disabled", false);
    }
});

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-06-29
  • 1970-01-01
  • 2019-03-30
  • 2015-07-05
  • 1970-01-01
  • 2014-05-05
  • 1970-01-01
相关资源
最近更新 更多