0

サイトに解決策のある他の投稿があることは知っていますが、自分のフォームが何をしているのかを明確に把握する必要があります。

<form name="multichoice" action="">
    <table>
         <tr>
             <td>Q1.</td>
             <td>Do you think you are pretty?</td>
             <td class="radiobox"><input type="radio" name="q1" value="1"/></td>
             <td class="radiobox"><input type="radio" name="q1" value="2"/></td>
             <td class="radiobox"><input type="radio" name="q1" value="3"/></td>
             <td class="radiobox"><input type="radio" name="q1" value="4"/></td>
         </tr>

         <tr>
             <td>Q2.</td>
             <td>Do you think you are smart?</td>
             <td class="radiobox"><input type="radio" name="q1" value="1"/></td>
             <td class="radiobox"><input type="radio" name="q1" value="2"/></td>
             <td class="radiobox"><input type="radio" name="q1" value="3"/></td>
             <td class="radiobox"><input type="radio" name="q1" value="4"/></td>
         </tr>
    </table>
</form>

だから私はあなたの答えを楽しみにして、私たちが提出する前にすべての質問が答えを持っていることを確認するためのjavascriptコードを探しています

よろしければよろしくお願いします

4

2 に答える 2

1

jQueryを使用しないようにしたい場合:

function isAnswered() {
  var radioGroups = {}
  for(i in (inputs = document.getElementsByTagName('input'))) {
    if(inputs[i].type === 'radio') {
      radioGroups[inputs[i].name] = radioGroups[inputs[i].name] ? true : inputs[i].checked;
    }
  }
  for(i in radioGroups) {
    if(radioGroups[i] === false) return false; 
  }
  return true;
}

これは、各無線要素を繰り返し処理し、各無線グループを追跡して、各グループの「チェック済み」値を探します。jQueryの同様のソリューション:

function isAnswered() {
  var isAnswered = true;
  $('input[type=radio]').each(function() {
    var name = $(this).attr('name');
    if($('input[name=' + $(this).attr('name') + ']:checked').length === 0) {
      isAnswered = false;
      return false;
    }
  });
  return isAnswered;
}
于 2012-06-20T19:30:45.037 に答える
0

これを実現するためにJQueryを使用できます。テストするサンプルは次のとおりです:-

 if (!$("input[name='q1']:checked").val()) {

       return false;
    }
    if (!$("input[name='q2']:checked").val()) {     
       return false;
    }

    return;

これを関数内にラップしてから、フォームのこの関数onsubmitイベントを呼び出す場合。検証が行われます。

編集:

また、ラジオボタンの名前も変更する必要があります。ラジオボタンの各セットまたはグループには一意の名前を付ける必要があります。このような :-

<table>
     <tr>
         <td>Q1.</td>
         <td>Do you think you are pretty?</td>
         <td class="radiobox"><input type="radio" name="q1" value="1"/></td>
         <td class="radiobox"><input type="radio" name="q1" value="2"/></td>
         <td class="radiobox"><input type="radio" name="q1" value="3"/></td>
         <td class="radiobox"><input type="radio" name="q1" value="4"/></td>
     </tr>

     <tr>
         <td>Q2.</td>
         <td>Do you think you are smart?</td>
         <td class="radiobox"><input type="radio" name="q2" value="1"/></td>
         <td class="radiobox"><input type="radio" name="q2" value="2"/></td>
         <td class="radiobox"><input type="radio" name="q2" value="3"/></td>
         <td class="radiobox"><input type="radio" name="q2" value="4"/></td>
     </tr>
</table>
于 2012-06-20T19:11:44.977 に答える