2014-03-01 50 views
0

我有4个复选框列表,现在我想要发生的是当一个已经选中时,其他复选框将被禁用。复选框的列表将作为单选按钮列表

即时试图找到几个小时现在的答案,我无法找到我的问题的任何解决方案。

这里是我的代码:

<input id="check1" type="checkbox" name="checkbox1" value="1" onclick="call(this)"/> 
<input id="check2" type="checkbox" name="checkbox2" value="1" onclick="call(this)"/> 
<input id="check3" type="checkbox" name="checkbox3" value="1" onclick="call(this)"/> 
<input id="check4" type="checkbox" name="checkbox4" value="1" onclick="call(this)"/> 





</body> 
+0

是否有一个原因,你不能只用单选按钮? – Samleo

+0

之所以这样,是因为每个复选框都有子单选按钮 – user3367225

+0

其仍然没问题...只需点击打开那些子单选按钮...... – Samleo

回答

0

使用此HTML代码:

<form id="foo"> 
    <input id="check1" type="radio" name="rad" value="1" onclick="call(this)"/> 
    <input id="check2" type="radio" name="rad" value="1" onclick="call(this)"/> 
    <input id="check3" type="radio" name="rad" value="1" onclick="call(this)"/> 
    <input id="check4" type="radio" name="rad" value="1" onclick="call(this)"/> 
</form> 

而且这段JavaScript代码:

function call(obj){ 
    nCheckBoxes = 4; 
    //unchecks all the checkboxes 
    for(i=1;i<=nCheckBoxes;i++){ 
     document.getElementById("check"+i).checked = false; 
    } 
    obj.checked = true; 
    //other functions here 
} 
+0

单选按钮无法取消选择。 – user3367225

0

我为我的手机,但喜欢的东西上这应该工作,如果你使用jQuery:

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

这不正是你所需要的:

function call(obj) { 

     var temp = obj.checked 
      i = 1; 

     for (; i <= 4; i++) { 
      document.getElementById("check" + i).checked = false; 
      document.getElementById("check" + i).disabled = temp ? "disabled" : ""; 
     } 

     obj.checked = temp; 
     obj.disabled = ""; 

    } 

这里工作jsFiddle