1

私は単純な解決策に問題があるはずですが、何かが欠けているだけだと確信しています。

2列のラジオボタンがあり、列のラジオボタンをクリックすると、反対の列の対応するラジオボタンを無効にする必要があるため、選択できません。次に、別のボタンが選択されている場合は、前のボタンを再度有効にし、反対側の新しい選択を無効にします。

すべてのラジオ ボタンに一意の ID を割り当てました。列 1 には first1、first2 など、列 2 には second1、second2 など。

これを再考した後、私が向かっていた方法は機能しません.1時間オンラインで検索した後、jquery以外の方法は見つかりませんでした。JavaScriptで可能ですか?

私がこれまでに経験したこと、そして私がベースから外れていることはわかっていますが、このページで発生したさまざまな問題で燃え尽きています。

function disableForm(theform, theradio) {
    //this was a start but does't save valid disabled fields
    //it just enables everything
    if (document.all || document.getElementById) {
        for (i = 0; i < theform.length; i++) {
        var formElement = theform.elements[i];
            if (true) {
                formElement.disabled = false;
            }
        }

    }

    document.getElementById(theradio).onclick = function(){
        document.getElementById(theradio).disabled=true;
    }
}
4

1 に答える 1

3

ラジオを次のように定義するとしましょう

<table style="width: 100%;">
        <tr>
            <td>
                <input id="Radio1_1" type="radio" name="Radio1" onchange="process(this)"/><br />
                <input id="Radio1_2" type="radio" name="Radio1" onchange="process(this)"/><br />
                <input id="Radio1_3" type="radio" name="Radio1" onchange="process(this)"/><br />
                <input id="Radio1_4" type="radio" name="Radio1" onchange="process(this)"/><br />
                <input id="Radio1_5" type="radio" name="Radio1" onchange="process(this)"/>
            </td>
            <td>
                <input id="Radio2_1" type="radio" name="Radio2" /><br />
                <input id="Radio2_2" type="radio" name="Radio2" /><br />
                <input id="Radio2_3" type="radio" name="Radio2" /><br />
                <input id="Radio2_4" type="radio" name="Radio2" /><br />
                <input id="Radio2_5" type="radio" name="Radio2" />

            </td>

        </tr>

    </table>

次に、簡単なスクリプトで目標を達成できます。

 function process(rb) {

   //clearing previos disabled
   for (i = 0; i < document.getElementsByName("Radio2").length; i++) {
       document.getElementsByName("Radio2")[i].disabled = '';
   }
   document.getElementById(rb.id.replace('Radio1','Radio2')).disabled='disabled';
 }

作業例: http://jsfiddle.net/bbGDA/1/

于 2013-08-07T21:42:53.197 に答える