【问题标题】:How to make checkbox exclusive in javascript?如何在javascript中使复选框独占?
【发布时间】:2015-10-05 11:45:48
【问题描述】:

在多选问题中,如果最后一个复选框(“以上都不是”)被选中,如何取消选中所有选定的选项(如果有)?

【问题讨论】:

  • 你有这个问题的例子吗?如果你发布一些代码会更容易得到答案......
  • 到目前为止您尝试了哪些方法,您的问题的相关源代码在哪里?
  • Reebok
    耐克
    彪马
    Levis 这些都不是
  • Reebok
    耐克
    彪马
    Levis 这些都不是
  • Reebok
    耐克
    Puma
    Levis
    这些都不是

标签: javascript html forms


【解决方案1】:

这取决于你的 html 结构,但我可以举个例子

$('input').change(function() {
  var $el = $(this);
  
  if ($el.attr('id') == 'none' && $el.prop('checked')) {
    $('input').not($el).prop('checked', false);
  } else {
    $('#none').prop('checked', false);  
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <input id="op1" type="checkbox" /><label for="op1">Option 1</label>
  <input id="op2" type="checkbox" /><label for="op2">Option 2</label>
  <input id="op3" type="checkbox" /><label for="op3">Option 3</label>
  <input id="op4" type="checkbox" /><label for="op4">Option 4</label>
  <input id="op5" type="checkbox" /><label for="op5">Option 5</label>
  <input id="none" type="checkbox" /><label for="none">None</label>
</div>

【讨论】:

  • 这是 JQuery,我用 javascript 询问。
  • 完成!
    锐步
    耐克
    Puma
    Levis
    这些都不是
【解决方案2】:

您可以获取应用在所有复选框上的通用类名,然后使用以下代码:

 $('.checkboxCSS').click(function(){
     if($(this).attr('id') == 'none')
          $('.checkboxCSS').not(this).attr('checked', false);
    });

【讨论】:

  • 这是 JQuery,我用 javascript 询问。
  • 完成!
    锐步
    耐克
    Puma
    Levis
    这些都不是
【解决方案3】:

我会这样做:

$("[name='none']").click(function(){
    if($(this).attr('checked')=="checked"){
        $(this).siblings().attr('checked', false);
    }
});

Here is the JSFiddle demo

【讨论】:

  • 这是 JQuery,我用 javascript 询问。
  • 完成!
    锐步
    耐克
    Puma
    Levis
    这些都不是
【解决方案4】:

您可以参考以下代码:

小提琴链接:http://jsfiddle.net/sqz75b9g/12/

HTML:

<div class="row">
    <input type="checkbox" class="selectanswer"/>select 0
    <input type="checkbox" class="selectanswer"/>select 1
    <input type="checkbox" class="selectanswer"/>select 2
    <input type="checkbox" class="selectanswer"/>select 3
    <input type="checkbox" class="selectanswer"/>None of the above
</div> 

Javascript:

    $(document).ready(function(){
    $(".selectanswer").click(function(){
        var currentParent = $(this).closest(".row");
        var checkboxGroup = $(currentParent).find(".selectanswer");
        if($(this).prop("checked") && $(this).index() == checkboxGroup.length-1)
        {
            $(checkboxGroup).not(this).prop('checked', false);
        }
        else
        {
            $(checkboxGroup).eq(checkboxGroup.length-1).prop('checked', false);
        }
    });
});

【讨论】:

  • 这是 JQuery,我用 javascript 询问。
  • @ManikManocha - 为什么您为您的问题添加了jquery 标签。你绝对是在浪费别人的时间。请在发布下一个问题时记住这一点。
  • jQuery 是在 javascript 之上编写的。所以最终它是一个 javascript...:)
  • 哈哈,我在上面的 cmets 中发布了一些代码。你能看看那个并指出我的错误吗?请
  • 完成!
    锐步
    耐克
    Puma
    Levis
    这些都不是
猜你喜欢
  • 2018-01-05
  • 1970-01-01
  • 1970-01-01
  • 2017-04-06
  • 1970-01-01
  • 2020-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多