2017-04-06 115 views
-1

我明白,我可以使用jQuery(how to get multiple checkbox value using jquery)來獲取複選框的值當有多個,但我的複選框,輸入是HTML表單裏面,所以那些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複選框的名稱(這是我需要發佈數據的東西),它返回undefined。 –

回答

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

相關問題