0

javaScriptに問題があります。最初の4つのチェックボックスのいずれかまたは最後の4つのチェックボックスのいずれかをtrueにチェックしたいと思います。ここで私のコードでは、チェックボックスの最初の4つまたは最初の4つすべてをチェックすると、最後の4つのチェックボックスが無効になります。これで、いずれか1つまたは最初の4つをチェックした後、最後の4つはクリックできなくなります。クリック可能にし、最初の4つのチェックボックスをオフにします。私のコードを修正してください

これが私のコードですそして事前に感謝します

<html>
<head>
<title>FooBar</title>
<script language="javascript">
function checkOnly(checked)
{
  if(document.myForm.elements[0].checked == true || document.myForm.elements[1].checked == true || document.myForm.elements[2].checked == true || document.myForm.elements[3].checked == true)
  {
      document.myForm.elements[4].checked = 0;
      document.myForm.elements[5].checked = 0;
      document.myForm.elements[6].checked = 0;
      document.myForm.elements[7].checked = 0;
  }  


}        
</script>
</head>
<body>
<form name="myForm">
<?php for($i=1;$i<=8;$i++){ ?>
<input type="checkbox" name="cb" id="cb" value="1" onClick="checkOnly(this)">
<?php } ?>
</form>
</body>
</html>
4

1 に答える 1

2

checkOnly関数の「checked」パラメーターを使用して、ユーザーがチェックしたチェックボックスを判別することを検討してください(おそらく一意のIDを指定します)。現在のロジックでは、最初のチェックボックスをオンにすると、最後の4つのチェックボックスがクリアされます。次に、最後のチェックボックスをオンにすると、最初のチェックボックスがオンのままであるため、最後の4つのチェックボックスがクリアされます。これにより、最後の4つのチェックボックスが無効になっているにもかかわらず無効になっているように見えます。

例えば:

<html>
<head>
<title>FooBar</title>
<script language="javascript">
function checkOnly(myCheckbox) {
   var checkboxChanged = false;
   var checkedTotalValue = 0;
   var changedTotalValue = 0;

   for(var i = 0; i < document.myForm.elements.length; i++) {
      if(document.myForm.elements[i].name != myCheckbox.name) {
         if(document.myForm.elements[i].checked == true) {
            checkboxChanged = true;
            changedTotalValue += parseInt(document.myForm.elements[i].value);
         }
         document.myForm.elements[i].checked = false;
      }

      if(document.myForm.elements[i].checked == true) {
        checkedTotalValue += parseInt(document.myForm.elements[i].value);
      }
   }

   if(checkboxChanged) {
      alert('Checked: ' + checkedTotalValue + ', Changed: ' + changedTotalValue);
   }
}
</script>
</head>

<body>
<form name="myForm">
<input type="checkbox" name="checkboxGroup1" id="cb" value="1" onClick="checkOnly(this)">
<input type="checkbox" name="checkboxGroup1" id="cb" value="1" onClick="checkOnly(this)">
<input type="checkbox" name="checkboxGroup1" id="cb" value="1" onClick="checkOnly(this)">
<input type="checkbox" name="checkboxGroup1" id="cb" value="1" onClick="checkOnly(this)">
<input type="checkbox" name="checkboxGroup2" id="cb" value="1" onClick="checkOnly(this)">
<input type="checkbox" name="checkboxGroup2" id="cb" value="1" onClick="checkOnly(this)">
<input type="checkbox" name="checkboxGroup2" id="cb" value="1" onClick="checkOnly(this)">
<input type="checkbox" name="checkboxGroup2" id="cb" value="1" onClick="checkOnly(this)">
</form>
</body>
</html>
于 2013-03-27T12:05:46.323 に答える