2011-12-15 167 views
2

我想建立一個JavaScript,所以用戶只能選擇下面提到的一個選項。你可以給我一些指針如何做到這一點,因爲我是一個javascript noob。只選一個複選框

謝謝!

這是一個菜單 enter image description here

<td><label for="dock_books_search_visible_online"> Visible online?</label></td> 
         <td><input type="checkbox" name="option" value="checkedVisibleOk" id="dock_books_visible_ok" /> </td> 
         <td><label for="dock_books_search_visible_online_yes"> Yes</label></td> 
         <td><input type="checkbox" name="option" value="checkedVisibleNok" id="dock_books_visible_nok" /> </td> 
         <td><label for="dock_books_search_visible_online_no"> No</label></td> 
+1

讓這個工作由收音機.... !!完成! – AlphaMale 2011-12-15 10:18:00

+0

所以...想象這必須用複選框來完成?那麼解決方案是什麼? – 2011-12-15 10:31:18

回答

8

對於多個選項中的單個選項,我們使用Radio Buttons而不是CheckBoxes

你應該使用這樣的東西。

<input type="radio" name="option" value="Yes" id="yes" /> 
<input type="radio" name="option" value="No" id="no" /> 

但是,如果你想圓走另一條路,只需添加下面的腳本在你的腦袋標籤仍然

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script> 
$(document).ready(function(){ 
    $(':checkbox').bind('change', function() { 
     var thisClass = $(this).attr('class'); 
     if ($(this).attr('checked')) { 
      $(':checkbox.' + thisClass + ":not(#" + this.id + ")").removeAttr('checked'); 
     } 
     else { 
      $(this).attr('checked', 'checked'); 
     } 
    }); 
}); 
</script> 

這裏是fiddle以上。

希望這會有所幫助。

+0

謝謝AlphaMale for幫助! – 2011-12-15 11:06:17

2

這看起來像單選按鈕,複選框不工作的部分的畫面。

+0

你是對的,但如果我們有讓我說13條記錄的搜索結果,我有一個帶有2個按鈕的工具欄編輯和刪除我會檢查儘可能多的我想刪除但編輯我只能檢查一個記錄複選框 – shareef 2012-06-18 05:30:27

0

嗨你爲什麼使用複選框?複選框不適用於您想要的功能。單選按鈕確切地是你想要使用的。

<form> 
<input type="radio" name="sex" value="male" /> Male<br /> 
<input type="radio" name="sex" value="female" /> Female 
</form> 

進一步的細節看here

1

嘗試使用單選按鈕的,給他們相同的名稱將它們分組,並只允許1供選擇:

<td> 
    <label for="dock_books_search_visible_online"> Visible online?</label> 
</td> 
<td> 
    <input type="radio" name="option" value="checkedVisibleOk" id="dock_books_visible_ok" /> 
</td> 
<td> 
    <label for="dock_books_search_visible_online_yes"> Yes</label> 
</td> 
<td><input type="radio" name="option" value="checkedVisibleNok" id="dock_books_visible_nok" /> 
</td> 
<td> 
    <label for="dock_books_search_visible_online_no"> No</label> 
</td> 

Check this JSFiddle.

2

你有一點使用單選按鈕這裏的任何方式是javascript解決方案 我用它在我的項目中,當有搜索標誌RIA和搜索結果中的數據網格由具有13個記錄 阿賈克斯當我檢查一個記錄它會禁用其餘

code for javascript enable disable check boxes jsfiddle

<form name="mainForm" method="GET"> 

    Visible online? 


     <input type="checkbox" name="option" value="checkedVisibleOk" id="option" onclick="changeCheckBox();"/> 

yes 

     <input type="checkbox" name="option" value="checkedVisibleNok"  id="option" onclick="changeCheckBox();"/> 

     no 

</form> 
<script> 
var serNoChecked=""; 
function changeCheckBox() { 
try { 

     var max = document.mainForm.option.length; 
     var count = 0; 

     for (var i = 0; i < max; i++) { 
      if (document.mainForm.option[i].checked == true) { 
       count++; 
       serNoChecked = i; 
      } 
     } 
     if (count == 1) { 
      for (var i = 0; i < max; i++) { 
       if (document.mainForm.option[i].checked == false) { 
        document.mainForm.option[i].disabled = true; 
       } 
      } 
     } 
     else if (count == 0) { 
      for (var i = 0; i < max; i++) { 
       document.mainForm.option[i].disabled = false; 
      } 
     } 

     if (null == max) return false; 
     if (count == 0) { 
      return true; 
     } 
     else if (count > 0) { 
      return false; 
     } 

    } 
    catch (e) { 
     alert(e.message); 
    } 
} 
    </script> 
0
function toggle(chkBox, field) { 
    for (var i = 0; i < field.length; i++) { 
     field[i].checked = false; 
    } 
    chkBox.checked = true; 
} 


<td> 
    <INPUT type="checkbox" name="xyz" onClick="toggle(this,document.myform.xyz);" value="${incident.incidentID}"> 
</td> 
0

使用單選按鈕,並確保該名稱標籤與所有一致選項,它會自動選擇一個不需要附加代碼或JS的選項。

相關問題