我正在使用django框架开发表单。我有一个表格,其中有一个表格,表格中有一些复选框。我正在将数据收集到字典中,并将其传递给我的django函数。如果我没有选择复选框就提交表单,则工作正常。但是,当我选择复选框时,数据不会发布到views.py文件中。我看到使用console.log在字典中填充了数据。
为此需要指导。
我的html:
<table>
.....
.....
</table>
<div class="checkbox">
<label><input type="checkbox" name="run_prep" value="">Run Prep</label>
</div>
<div class="checkbox">
<label><input type="checkbox" name="run_post"value="">Run Post</label>
</div>`enter code here`
<div class="checkbox">
<label><input type="checkbox" name="run_reports" value="">Run Reports</label>`enter code here`
</div>
下面是我的js代码:
$(document).ready(function(){
$("form").submit(function(e){
e.preventDefault();
var data = {};
form_data = []
$("tr", "tbody").each(function(row){
var count_row = true;
$("input", this).each(function(idx, inp){
if (!($(this).val())){
count_row = false;
}
});
$("select", this).each(function(idx, inp){
if (!($(this).val())){
count_row = false;
}
});
if (count_row){
row_data = {};
$("input", this).each(function(idx, inp){
row_data[$(this).attr("name")] = $(this).val();
});
$("select", this).each(function(idx, inp){
row_data[$(this).attr("name")] = $(this).val();
});
var id = $(this).attr("id");
data[id] = row_data;
form_data.push(data);
data = {};
}
});
run_check = {};
$("input[type=checkbox]", this).each(function () {
if (this.checked) {
run_check[$(this).attr("name")] = 1;
}
});
var chkname = "run-check"
data[chkname] = run_check;
form_data.push(data);
var csrftoken = Cookies.get('csrftoken');
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
}
});
console.log(JSON.stringify(form_data))
$.ajax({
type: "POST",
contentType: 'application/json',
data: JSON.stringify(form_data)
}).then(function(data){
console.log(data);
location.replace(data.redirect);
});
});
});