【问题标题】:php html java checkbox array, but have first 4 act like radiophp html java复选框数组,但前4个像收音机一样
【发布时间】:2014-11-19 07:41:51
【问题描述】:

一段时间以来,我一直在尝试让复选框数组的前 4 个充当单选按钮,我以为我拥有它,但我无法弄清楚。我在这里搜索并发现.. Checkbox to act like radio button, check first four or last four checkboxes but not both- javascript?

虽然我显然还不能让它在我的情况下工作。所以重新迭代。我需要前4个你只能选择1个,而其他的可以是任意组合的倍数。我知道我必须错过它的一些小东西。

HTML

 <form name="account_info" id="account_info">
 <input type="checkbox" name="permissions[]" value="0" onClick="checkOnly(this)"> Permission 0<br>
 <input type="checkbox" name="permissions[]" value="1" onClick="checkOnly(this)"> Permission 1<br>
 <input type="checkbox" name="permissions[]" value="2" onClick="checkOnly(this)"> Permission 2<br>
 <input type="checkbox" name="permissions[]" value="3" onClick="checkOnly(this)"> Permission 3<br>
 <input type="checkbox" name="permissions[]" value="4"> Permission 4<br>
 <input type="checkbox" name="permissions[]" value="5"> Permission 5<br>
 <input type="checkbox" name="permissions[]" value="6"> Permission 6<br>
 <input type="checkbox" name="permissions[]" value="7"> Permission 7<br>
 </form>

脚本

function checkOnly(myCheckbox) {
   for(var i = 0; i < 4; i++) {
      if(document.account_info.elements[i].name != myCheckbox.name) {
         document.account_info.elements[i].checked = false;
      }
   }
}

这里是 jsfiddle 的链接 http://jsfiddle.net/np4dry0f/3/

【问题讨论】:

  • 是的,只要把它们做成单选按钮。 ¯_(ツ)_/¯

标签: php jquery html checkbox radio-button


【解决方案1】:

问题在于 name 属性在 javascript 中将始终为 permissions[]

一种可能的解决方案是使用值而不是名称:

function checkOnly(myCheckbox) {
   for(var i = 0; i < 4; i++) {
      if(document.account_info.elements[i].value != myCheckbox.value) {
         document.account_info.elements[i].checked = false;
      }
   }
}

查看JS Bin 上的示例。

【讨论】:

  • 我知道这很简单。我无法为我的生活找出原因。我确定它放置了权限 [0]、权限 [1] 等。非常感谢您的澄清。我也得学点东西
【解决方案2】:

比遍历每个复选框容易得多

$('.radio').change(function() {
  $('.radio').not(this).removeAttr('checked');
  $(this).attr('checked','checked');
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<form name="account_info" id="account_info">
<input class="radio" type="checkbox" name="permissions[]" value="0"> Permission 0<br>
<input class="radio" type="checkbox" name="permissions[]" value="1"> Permission 1<br>
<input class="radio" type="checkbox" name="permissions[]" value="2"> Permission 2<br>
<input class="radio" type="checkbox" name="permissions[]" value="3"> Permission 3<br>
<input class="radio" type="checkbox" name="permissions[]" value="4"> Permission 4<br>
<input class="radio" type="checkbox" name="permissions[]" value="5"> Permission 5<br>
<input class="radio" type="checkbox" name="permissions[]" value="6"> Permission 6<br>
<input class="radio" type="checkbox" name="permissions[]" value="7"> Permission 7<br>
</form>

【讨论】:

    猜你喜欢
    • 2014-07-29
    • 2013-11-27
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 2011-09-23
    • 1970-01-01
    • 2014-09-12
    • 1970-01-01
    相关资源
    最近更新 更多