当勾选另一个复选框时,如何禁用复选框&未被攻击时重新启用?

时间:2017-01-26 23:27:46

标签: javascript asp.net-mvc

我目前正在使用Javascript尝试尝试此操作,这可能是我将复选框链接到脚本的方式吗?如果是这样,任何建议都会有所帮助编辑 - 复选框在foreach循环中,并且无线电框不起作用,因为这不是我使用它的确切情况。

复选框

@Html.CheckBoxFor(modelItem => item.ambassador, htmlAttributes: new { @class = "checkbox", type = "checkbox" })

@Html.CheckBoxFor(modelItem => item.groupSelection, htmlAttributes: new { @class = "checkbox", type = "checkbox" })

的Javascript

<script>
    $('.checkbox').change(function () {
        $(this).siblings('.checkbox').prop('disabled', this.checked);
    });
</script>

Javascript代码来自此问题:Disable Checkbox on selecting another checkbox in mvc4

2 个答案:

答案 0 :(得分:0)

HTML已经内置了这个功能,它们被称为radio buttons

&#13;
&#13;
<form>
  <input type="radio" name="option" value="first">
  <label for="first">first</label>
  <input type="radio" name="option" value="second">
  <label for="second">second</label>
</form>
&#13;
&#13;
&#13;

来自EchoEcho

  

当您想让访问者从一组备选项中选择一个 - 而且只是一个 - 选项时,使用单选按钮。如果您应该同时使用更多选项   而是复选框。

因为您只希望用户能够一次选择两个选项中的一个,所以您应该使用单选按钮。

另见this ux.SE post on the subject.

答案 1 :(得分:0)

也许你的复选框是在加载脚本后加载的.. ajax?部分?尝试将监听器添加到body或父元素

&#13;
&#13;
$(function(){
  $('body').on('click', '.checkbox', function () {
    $(this).siblings('.checkbox').prop('disabled', this.checked);
  });
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="checkbox" type="checkbox"></input> check 1<br>
<input class="checkbox" type="checkbox"></input> check 2<br>
<input class="checkbox" type="checkbox"></input> check 3<br>
<input class="checkbox" type="checkbox"></input> check 4<br>
&#13;
&#13;
&#13;