2011-11-28 17 views
1

ここでラジオボタンを使用しない理由は、すべてのチェックボックスをオフにし、チェックとチェック解除に関連する他の動作があるためです。javascriptを使用してチェックする方法1チェックボックスをオフにし、その逆のチェックボックスをオフにしますか?

最初のチェックボックスをオンにすると、その行のすべてのラジオボタンが選択されます。 (How to use javascript to select a row of radio buttons when a checkbox is selectedを参照)

第1ボタンがオフの場合、その行のすべての無線が選択解除されます。

チェックボックスをオンにすると、もう一方のチェックボックスは自動的に選択解除されます。

私はおそらく私がcssクラスでこれを行うことができると思っています。したがって、クラス内の1つのチェックボックスがチェックされると、他のチェックボックスは自動的にチェックされなくなります。

私はこのようなコードを想像しています:

function uncheckOther(row_id) { 
     var row = document.getElementById(row_id) 
    var theClassName = row.className; 
    var classGroup = document.getElementsByClassName(theClassname); 
    for(var i=0; i<classGroup.length; i++) { 
     if(classGroup[i].id != row_id) { 
      classGroup[i].radio = unchecked; 
     } 
    } 
} 

は、私はこれをどのように行うのでしょうか?ここでのtr要素のidのとクラスとの例HTMLだし、第一子のtd要素内のチェックボックス:

<form name="form3" action="testfile4.php" method="get"> 
<table border="1"><thead> 
    <tr><th>Select entire row</th><th>item_code</th><th>page</th><th>usd_dn</th></tr> 
</thead> 
<tbody> 
    <tr id="534" class="15838"> 
     <td ><input type="checkbox" onclick="select_row(534);"></td>  <td>15838   <input type="radio" name="15838|item_code" value="534" /></td> 
     <td>284<input type="radio" name="15838|page" value="534" /></td> 
     <td>$73.00<input type="radio" name="15838|usd_dn" value="534" /></td> 
    </tr> 
    <tr id="535" class="15838"> 
     <td ><input type="checkbox" onclick="select_row(535);"></td>  <td>15838   <input type="radio" name="15838|item_code" value="535" /></td> 
     <td>299 
      <input type="radio" name="15838|page" value="535" /></td> 
     <td>$73.00<input type="radio" name="15838|usd_dn" value="535" /></td> 
    </tr> 
    <tr id="565"> 
     <td ><input type="checkbox" onclick="select_row(565);"></td>  <td>1611   <input type="radio" name="1611|item_code" value="565" /></td> 
     <td>66<input type="radio" name="1611|page" value="565" /></td> 
     <td>$3,350.00 
      <input type="radio" name="1611|usd_dn" value="565" /></td> 
    </tr> 
    <tr id="566"> 
     <td ><input type="checkbox" onclick="select_row(566);"></td>  <td>1611   <input type="radio" name="1611|item_code" value="566" /></td> 
     <td>66<input type="radio" name="1611|page" value="566" /></td> 
     <td>$3,225.00 
      <input type="radio" name="1611|usd_dn" value="566" /></td> 
    </tr> 
    </tbody> 
    </table> 
    </form> 

私はjqueryの答えとOKだけど、現時点では、純粋なJavaScriptを好みます。

+3

すべてのラジオボタンをオフにすることもできます。私はラジオボタンのためにチェックボックスを使うのは魅力的な事例ではありません。 – NullUserException

+1

さて、問題は、**ユーザー**は、通常のブラウザコントロールを使用して「1つのラジオボタンがチェックされている」から「ラジオボタンがチェックされていません」に進むことができないということです。それはそうであるべきです:私には、ボタンがチェックされていないラジオボタンのセットはバグです。これは、実際に**「ラジオボタン」の経験がある人にとっては、機械的に相互にリンクされていて、ラジオを壊すことができなくても、ボタンのない状態にすることはできなかった。 – Pointy

+0

よく指摘されている、先が細い – Ben

答えて

0

代わりにラジオボタンのチェックボックスを使用する理由はたくさんあります...

if ($('#myDivID').attr('checked')) 

がチェックだ場合、これはあなたを教えてくれます。チェックを任意のチェックボックスがオンのままになります

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

:すべてをループし、もう1つはチェックしてチェックのみ電流を維持するには、$(ドキュメント).ready()関数内でこのような何かを行うことができます。残りはチェックされません。

0

ネイティブな方法は、チェックボックスのDOMオブジェクト上にあるcheckedプロパティを使用することです:

document.getElementById("checkboxId").checked = false; 

または、切り替えるには:

var cb = document.getElementById("checkboxId"); 
cb.checked = !cb.checked; 

ここであれば、チェックボックスのDOMオブジェクトのためのdocumentationですあなたはjQueryを使わないようにしています。

関連する問題