0

これが私のラジオボタンです:

<label>
  <input type="radio" id="chk1" name="chooseSupp" onclick="change(this);">
    Chosen Supplier
</label>

これがセルを強調する私のJavascriptです:

<script type="text/javascript">
  function change(obj) {
    var tr=obj.parentNode.parentNode;
    tr.style.backgroundColor=(obj.checked)? 'red' : 'transparent';
  }
</script>

問題は、ラジオボタンをクリックするとハイライトされますが、別のラジオボタンをクリックするとそれもハイライトされますが、最初のボタンのハイライトが消えないことです。

私のラジオボタンはループしていますが、それが考えられる解決策に関連しているかどうかはわかりません。

何か案は?

4

1 に答える 1

1
    function change(obj) {
      var tr=obj.parentNode.parentNode.parentNode;
      var tbl = tr.parentNode;
      var inputs = tbl.getElementsByTagName("input");
      for(var i = 0;i<inputs.length;i++)
          inputs[i].parentNode.parentNode.parentNode.style.backgroundColor='transparent';
      tr.style.backgroundColor=(obj.checked)? 'red' : 'transparent';
    }

最初に他のすべての入力を透過的にします。次に、新しいスタイルにスタイルを適用します。

または、現在の入力の場合と同様に、他の入力がチェックされているかどうかを確認することもできます。これは、チェックボックスを使用する場合に役立ちます。

于 2013-02-19T16:04:31.333 に答える