如何从 html 表单中获取多个复选框值
how to get multiple checkbox values from html form
我知道当有多个复选框时我可以使用 jQuery (how to get multiple checkbox value using jquery) 来获取复选框值,但是我的复选框输入在 html 表单中,所以那些 jQuery 个解决方案不起作用,因为 none 个解决方案从表单中获取复选框值。
我尝试从表单中提取值,但它只是创建了一个奇怪的单选节点列表,它似乎在计算复选框名称而不是值在文档中出现的次数。
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 获取表单输入中的值而不是计算其他内容,也不知道如何访问选中框的值
checks
是一个类似数组的对象,表示具有该名称的所有元素。
像数组一样循环它。每个成员都有一个 value
属性 表示值和一个 checked
(布尔值)属性 会告诉您它是否被选中。
您可以使用 jQuery .map()
函数遍历每个选中的 checkbox
输入类型。这将 return 一个带有 selected
复选框的对象。现在,要从 jQuery 对象中获取数组,我们可以像这样使用 .get()
方法:
试试这个:
var validateForm = function() {
var checks = $('input[type="checkbox"]:checked').map(function() {
return $(this).val();
}).get()
console.log(checks);
return false;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.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>
var validateForm = function() {
var checks = $('input[type="checkbox"]:checked').map(function() {
return $(this).val();
}).get()
console.log(checks);
return false;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.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="yellow">
</th>
<th><input type="checkbox" name="ParticipantSelection[]" value="blue">
</th>
<th><input type="checkbox" name="ParticipantSelection[]" value="red">
</th>
</tr>
</table>
<input type="hidden" name="AnswerCondition" value="BrowserCheckAnswer"/>
<button type="submit">Continue</button>
</form>
我知道当有多个复选框时我可以使用 jQuery (how to get multiple checkbox value using jquery) 来获取复选框值,但是我的复选框输入在 html 表单中,所以那些 jQuery 个解决方案不起作用,因为 none 个解决方案从表单中获取复选框值。
我尝试从表单中提取值,但它只是创建了一个奇怪的单选节点列表,它似乎在计算复选框名称而不是值在文档中出现的次数。
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 获取表单输入中的值而不是计算其他内容,也不知道如何访问选中框的值
checks
是一个类似数组的对象,表示具有该名称的所有元素。
像数组一样循环它。每个成员都有一个 value
属性 表示值和一个 checked
(布尔值)属性 会告诉您它是否被选中。
您可以使用 jQuery .map()
函数遍历每个选中的 checkbox
输入类型。这将 return 一个带有 selected
复选框的对象。现在,要从 jQuery 对象中获取数组,我们可以像这样使用 .get()
方法:
试试这个:
var validateForm = function() {
var checks = $('input[type="checkbox"]:checked').map(function() {
return $(this).val();
}).get()
console.log(checks);
return false;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.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>
var validateForm = function() {
var checks = $('input[type="checkbox"]:checked').map(function() {
return $(this).val();
}).get()
console.log(checks);
return false;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.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="yellow">
</th>
<th><input type="checkbox" name="ParticipantSelection[]" value="blue">
</th>
<th><input type="checkbox" name="ParticipantSelection[]" value="red">
</th>
</tr>
</table>
<input type="hidden" name="AnswerCondition" value="BrowserCheckAnswer"/>
<button type="submit">Continue</button>
</form>