ajax - 复选框在 formData 中仅返回 0
问题描述
<input type="hidden" value="0" name="visa">
<input type="checkbox" value="1" name="visa">
阿贾克斯:
var formData = new FormData(document.getElementById("update-form"));
$.ajax({
type: "POST",
url: "teachers/" + $('#update-data').attr("value"),
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data:formData,
processData: false,
contentType: false,
cache: false,
success: function (data) {
alert("updated");
}
});
即使我的复选框被选中或未选中,我也会得到 0。
如果我添加以下代码,它会显示0 0
在控制台中。1
如果它被选中,它应该返回。
for (var pair of formData.entries()) {
console.log(pair);
}
解决方案
您可以使用 .is(':checked')
在你的 html
<input type="hidden" value="0" name="visa" id="hiddenInput">
<input type="checkbox" value="1" id="myCheckbox">
在你的 js
$("#myCheckbox").on('change',function(){
if($("#myCheckbox").is(':checked'))
$('#hiddenInput').val(1);
else{
$('#hiddenInput').val(0);
}
});
如果你有多个复选框,让我们在下面这样说
<input type="checkbox" id="hiddenInput1">
<input type="checkbox" id="hiddenInput2">
您可以循环复选框并附加到您的数据
在ajax上面添加这一行
var checkbox = $("#myForm").find("input[type=checkbox]");
$.each(checkbox, function(key, val) {
formData.append($(this).attr('id'), this.is(':checked'))
});
推荐阅读
- mongodb - 如何在 MongoDB 中使用正则表达式访问数组中的数组
- selenium - 在 CMD 中运行自动化测试
- visual-studio-code - vscode中的关键字突出显示
- mongodb - 具有排除条件的 mongo db updateMany
- sql - 如何在 Oracle 中维护截断/加载表的历史记录?
- apache - htaccess 中的 RequestReadTimeout 给出 500 内部服务器错误
- session - 即使请求中提供了现有会话 ID,Tomcat 也会创建新的 JSESSIONID
- sql - 无法创建物化视图的视图
- sql - 如何从 Bigquery 中的某个单元格中减去?
- rust - 循环内可变借用