1

フォームを送信する前に検証する必要があるラジオ ボタンの 2 つの異なるグループがあります。将来、これにさらにオプションを追加する必要があるかもしれませんが、現時点では、はい/いいえの質問の 2 つのグループがあります。これまでのラジオボタンのコードは次のとおりです。

<form name=myForm action="test.php" method="post">
<input type="radio" name="question1" id="question1">
<input type="radio" name="question1" id="question1">
<input type="radio" name="question2" id="question2">
<input type="radio" name="question2" id="question2">
<input type="submit" value="Submit">
</form>

したがって、基本的には、フォームを送信する前に、各グループ (質問 1 と質問 2) 内でオプションが選択されていることを確認する方法を探しています。

4

1 に答える 1

1

この問題は、実際には 2 つの部分と補足事項です。

補足事項 (問題には関係ありません) は、id は常に一意である必要があり、「question1」の id を持つ 2 つのラジオを持つことは無効です。

問題の 1 つは、フォームの送信時に確認することです。これを行う最も簡単な方法は、フォームの onsubmit タグに「return functName()」を追加することです。

<form name='myForm' action='test.php' method='post' onsubmit='return validate()'>

フォームが送信されるかどうかは、送信時に true を返すか false を返すかによって異なります。

2 つ目は、ラジオ ボックスを取得して、それらが選択されているかどうかを確認することです。以下を使用して、各ラジオ シークの入力を取得できます。

document.forms.myForm.nameOfRadioHere

その名前の入力のリストが表示されます。

次に、それらをループして、そのうちの1つが有効であると.checkedされていることを確認する必要があります。

コード例:

Javascript:

function validate(){
  if (checkRadio("question1") && checkRadio("question2")){
    return true;
  }else{
    alert("Please fill in both radio boxes!");
    return false;
  }
}

function checkRadio(name){
  var radio = document.forms.myForm[name];
  for (var option in radio){
    if(radio[option].checked){
      return true;
    }
  }
  return false;
}

HTML

<form name='myForm' action="test.php" method="post" onsubmit='return validate()'>
  <input type="radio" name="question1">
  <input type="radio" name="question1">
  <input type="radio" name="question2">
  <input type="radio" name="question2">
  <input type="submit" value="Submit">
</form>
于 2012-11-23T11:55:59.420 に答える