【问题标题】:Checkbox acting like radio button | Using icheck.js复选框像单选按钮 |使用 icheck.js
【发布时间】:2016-11-07 18:45:43
【问题描述】:

我创建了三个复选框,如下所示:

<input type="checkbox" name="upgrade">
<input type="checkbox" name="upgrade">
<input type="checkbox" name="upgrade">

我希望这些复选框像单选按钮一样使用,并且使用以下 jQuery,我几乎可以实现这一点。我也在使用 icheck.js 库,所以我正在做这样的 jQuery 代码:

$('input[type="checkbox"]').on('ifChanged', function() {
        $('input[name="' + this.name + '"]').not(this).iCheck('uncheck');
});

但是,这仅适用于第一次更改,一旦我第三次单击它就不再起作用了。谁能告诉我我做错了什么?

【问题讨论】:

  • 为什么不把单选按钮设置为复选框?
  • @AdamAzad 因为我想让用户能够取消选择所有内容,但我无法取消选择单选按钮
  • 你能把你的代码分享给 jsfiddle 吗?
  • @oguzhancerit 我无法准确地复制我得到的东西:jsfiddle.net/ro895g71/1

标签: javascript jquery checkbox icheck


【解决方案1】:

我不能使用 Icheck 插件,但我使用了标准复选框。

$('input[type="checkbox"]').click( function(){
   if( $(this).is(':checked') ){
     $('input[type="checkbox"]').prop('checked',false);
     $(this).prop('checked',true);
   }
   else {
     $(this).prop('checked',true);
   }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" name="upgrade" checked>
<input type="checkbox" name="upgrade">
<input type="checkbox" name="upgrade">

【讨论】:

  • 问题是当使用 icheck 时,prop 不起作用,因为复选框的工作方式完全不同。可以用 icheck 试试吗?
  • @MarjinooBajello 我正在尝试,请稍等。
  • @MarjinooBajello 对不起兄弟,我不能使用这个插件。我从 github 下载,加载了所有脚本,但它不工作:)。我建议你用新的复选框插件来改变它。
【解决方案2】:

根据之前的回答,里面的 if 语句没有理由。这个解决方案将删除所有选中的内容,然后立即检查适当的选择。

HTML:

<input type="checkbox" name="upgrade">
<input type="checkbox" name="upgrade">
<input type="checkbox" name="upgrade">

JS:

$('input[type="checkbox"]').click( function(){
  $('input[type="checkbox"]').prop('checked',false);
  $(this).prop('checked',true);
});

https://jsbin.com/qeqemuqaci/edit?html,js,output

【讨论】:

    猜你喜欢
    • 2013-08-07
    • 1970-01-01
    • 2011-06-09
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多