2017-04-06 21 views
-1

複数のチェックボックス入力がHTMLフォーム内にある場合、jQuery(how to get multiple checkbox value using jquery)を使用してチェックボックスの値を取得できることを理解しています。いずれもフォーム内からチェックボックスの値を取得しません。htmlフォームから複数のチェックボックス値を取得する方法

私はフォームから値を抽出しようとしますが、チェックボックスの名前が値ではなく文書の中に現れる回数を数えるような奇妙な無線ノードリストを作成するだけです。

function validateForm() { 
 
    var checks = document.forms["TestForm"]["ParticipantSelection[]"]; 
 
    alert(checks); 
 

 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script> 
 

 
<form name="TestForm" action="Video1.php" method="post" onsubmit="return validateForm()"> 
 

 
    <table> 
 

 
    <tr> 
 
     <th><img name="<?php echo $valueindicator[0];?>" src="<?php echo $all_four_images[0];?>" height="100"> 
 
     </th> 
 

 
     <th><img name="<?php echo $valueindicator[1];?>" src="<?php echo $all_four_images[1];?>" height="100"> 
 
     </th> 
 
     <th><img name="<?php echo $valueindicator[2];?>" src="<?php echo $all_four_images[2];?>" height="100"> 
 
     </th> 
 
    </tr> 
 

 
    <tr> 
 
     <th> <input type="checkbox" name="ParticipantSelection[]" value="image1"> 
 
     </th> 
 

 
     <th><input type="checkbox" name="ParticipantSelection[]" value="image2"> 
 
     </th> 
 

 
     <th><input type="checkbox" name="ParticipantSelection[]" value="image3"> 
 
     </th> 
 
    </tr> 
 

 

 
    </table> 
 
    <input type="hidden" name="AnswerCondition" value="BrowserCheckAnswer"> 
 

 

 
    <button type="submit">Continue</button> 
 

 
</form>

しかし、私はどのようにの値を取得するには、JSを取得するには考えているいただきまし代わりに何か他のものを数えるのフォーム入力、および確認の値にアクセスする方法がないアイデア内部ボックス

+0

あなたは、その値をしたい場合は、何かに '.value'を使用してみてください。 'document.forms'と同じように。 – csmckelvey

+0

こんにちは、お返事ありがとう!私はこれを数回試しました.HTMLチェックボックスの名前(これはデータを投稿する必要があります)のために未定義です。 –

答えて

1

あなたがそれぞれを反復処理するためにjqueryの.map()機能を使用することができますが、チェックボックスをチェックし、それが選択したチェック・ボックスのオブジェクトを返します、jQueryオブジェクトから配列を取得するために、我々はこのお試しください

を下回るよう.get()を使用することができます。

var validateForm = function(){ 
 
\t var checks = $('input[type="checkbox"]:checked').map(function(){ 
 
\t \t return $(this).val(); 
 
\t }).get() 
 
    console.log(checks); 
 
    return false; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form name = "TestForm" action="Video1.php" method="post" onsubmit="return validateForm()"> 
 

 
<table> 
 

 

 
    <tr> 
 
     <th> <input type="checkbox" name="ParticipantSelection[]" value="image1"> 
 
     </th> 
 

 
     <th><input type="checkbox" name="ParticipantSelection[]" value="image2"> 
 
     </th> 
 

 
     <th><input type="checkbox" name="ParticipantSelection[]" value="image3"> 
 
     </th> 
 
    </tr> 
 

 

 
</table> 
 
<input type="hidden" name="AnswerCondition" value="BrowserCheckAnswer"> 
 

 

 
<button type="submit">Continue</button> 
 

 
</form>

+0

ありがとう –

+0

こんにちは!それは間違いなく、私は約興奮している選択を数えた!しかし、チェックはObjectオブジェクトであることが判明しましたが、Object.values(チェック)を使用してそれを取得できます:)チェックボックスの値以外にもたくさんのものが含まれていますが、たとえば、内部にあるものを数えます。 –

+0

jQueryオブジェクトから選択された値の配列を取得するための回答が更新されました:) –

1

checksは、その名前を持つすべての要素を表す配列のようなオブジェクトです。

配列のようにループします。各メンバーは、値を表すvalueプロパティと、チェックされているかどうかを示すchecked(ブール値)プロパティを持ちます。

+0

こんにちは、お返事ありがとうございます!申し訳ありませんが、私はこの前に数回試してみました。なぜそれがうまくいかなかったのか分かりませんが、私が試したこのループの化身はどれもありませんでした。 –

+0

@SFloyd - 彼らはどちらもうまくいきませんでした。あなたはこの回答を参考にしてマークすることができます。それは他の人にも役立つようにあなたのために働きます。[Mcve] – Quentin

関連する問題