我试图通过javascript提交表单的值,它同时包含文本和两个复选框。
<script>
function SubmitFormData2() {
var preffered_loc = $("#preffered_loc").val();
var relocation = $(".relocation").val();
$.post("r_two.php", { preffered_loc: preffered_loc,relocation: relocation },
function(data) {
$('#results').html(data);
$('#myForm2')[0].reset();
});
}
</script>
<form id="myForm2" method="post" style="margin-left: -10%;">
<input type="text" class="form-control" id="preffered_loc" name="preffered_loc">
<input type="checkbox" name="relocation[]" class="relocation[]" value="Yes">
<input type="checkbox" name="relocation[]" class="relocation[]" value="No" >
<input type="button" id="submitFormData2" onclick="SubmitFormData2();" value="Submit" />
</form>r_two.php
<?
$preffered_loc = $_POST['preffered_loc'];
$relocation = $_POST['relocation'];
?>我可以保存第一个值,但是我不能保存迁移值,谁能告诉我如何保存迁移。这里的要点是,用户也可以同时选择两个复选框。
问题是,即使我选择了第二个选择框,$relocation也只会选择价值是的。有人能更正一下我的代码吗?
发布于 2016-01-20 12:48:33
尝尝这个。
function SubmitFormData2() {
var preffered_loc = $("#preffered_loc").val();
var relocation = $("#relocation").is(":checked");
var relyn = "";
if(relocation){
relyn = "Yes";
}else{
relyn = "No";
}
$.post("r_two.php", { preffered_loc: preffered_loc,relocation: relyn },
function(data) {
$('#results').html(data);
$('#myForm2')[0].reset();
});
alert("{ preffered_loc: "+preffered_loc+",relocation: "+relyn+" }");
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="myForm2" method="post" style="margin-left: -10%;">
<input type="text" class="form-control" id="preffered_loc" name="preffered_loc">
<input type="checkbox" name="relocation[]" id="relocation" />
<input type="button" id="submitFormData2" onclick="SubmitFormData2();" value="Submit" />
</form>
正如萨帕尔所说:
发布于 2016-01-20 12:54:39
由于它是一个复选框,而不是无线电用户可以有多个选择,例如:
<input type="checkbox" name="relocation[]" class="relocation" value="Yes">
<input type="checkbox" name="relocation[]" class="relocation" value="No" >
<input type="checkbox" name="relocation[]" class="relocation" value="Both" >尝试使用:checked选择器,
$( ".relocation:checked" ).each(function(i,v){
alert(v.value)
});发布于 2016-01-20 12:52:14
您根本无法选择复选框元素,因为在选择器中没有包括[]。您可以像这样的Q/A中描述的那样转义括号,也可以简单地删除括号(下面的示例代码是后者)。
我建议使用单选按钮,因为用户可以立即看到选项是什么。(两者都有第三种选择)
下面的代码使用复选框,并将所有选定的选项放入传递的数组中。这将允许用户同时使用这两个选项。
<script>
function SubmitFormData2() {
var preffered_loc = $("#preffered_loc").val();
var relocation = [];
$(".relocation:checked").each(function () {
relocation.push ($this.vak ();
}); // :checked is provided by jquery and will only select a checkbox/radio button that is checked
$.post("r_two.php", { preffered_loc: preffered_loc,relocation: relocation },
function(data) {
$('#results').html(data);
$('#myForm2')[0].reset();
});
}不要忘记从复选框类中删除[]。
https://stackoverflow.com/questions/34900146
复制相似问题