0

最初のラジオボタンを選択したら、3つのチェックボックスすべてをオンにして無効にする必要があります。

2番目または3番目のラジオボタンother_1を選択した場合、チェックを外して再度有効にするには、3つのチェックボックスが必要です。

コード(機能していない):

function validate_Days() {

var noOfDays = 0;   

if (document.classic.r.value = "3daypass") {
    noOfDays = 3;
}

if (document.classic.r.value = "2daypass") {
    noOfDays = 2;
}

if (document.classic.r.value = "1daypass") {
    noOfDays = 1;
}


if (noOfDays == 3) {
    document.getElementById('cb1').checked = true;
    document.getElementById('cb2').checked = true;
    document.getElementById('cb3').checked = true;
}
else if (noOfDays == 2) {
    document.getElementById('cb1').checked = false;
    document.getElementById('cb2').checked = false;
    document.getElementById('cb3').checked = false;
}
else if (noOfDays == 1) {
    document.getElementById('cb1').checked = false;
    document.getElementById('cb2').checked = false;
    document.getElementById('cb3').checked = false;
}
}

編集:無効化を削除し、より有用な名前/値を使用しました

4

1 に答える 1

1

コードが何をしているのかわかりませんが、チェックボックスのオンとオフを切り替える方法は次のとおりです。また、チェックしたときに無効になっている理由もわかりません。無効にしたコントロールは成功しないため、フォームが送信されたときにサーバーに投稿されません。

<script>
function getRadioValue(radioSet) {

  for (var i=0, iLen=radioSet.length; i<iLen; i++) {

    if (radioSet[i].checked) {
      return radioSet[i].value;
    }
  }
}

function updateRadios(el) {
    var form = el.form;
    var checked = getRadioValue(form.rb) == '3'? true : false;
    form.r1.checked = checked;
    form.r2.checked = checked;
    form.r3.checked = checked;
}
</script>

<form>
  <fieldset onclick="updateRadios(this)">
     <legend>Radio buttons</legend>
     <input type="radio" value="1" name="rb"> 1<br>
     <input type="radio" value="2" name="rb"> 2<br>
     <input type="radio" value="3" name="rb"> 3<br>
   </fieldset>
   <fieldset>
     <legend>Checkboxes</legend>
     <input type="checkbox" value="1" name="r1"> 1<br>
     <input type="checkbox" value="2" name="r2"> 2<br>
     <input type="checkbox" value="3" name="r3"> 3<br>
   </fieldset>
 </form>
于 2013-01-14T11:44:59.103 に答える