我使用下面的函数用 ajax 发送我的表单数据:
$(function() {
$('#sendButton').click(function(e) {
e.preventDefault();
var temp = $("#backupSubmit").serialize();
$.ajax({
type: "POST",
data: temp,
url: 'backup/',
success: function(data) {
$("#response").html('<p>{% trans "you can download it from here:" %}'+'<a href="'+data+'">{% trans "download" %}</a></p>');
$("#response").show();
}
});
});
});
现在我想使用这个功能:
$("#sendButton").click(function(e){
e.preventDefault();
save_data();
if(save_data()) {
alert('Saved!');
} else {
alert('Failed!');
}
});
function save_data() {
$.post("backup/", {
csrfmiddlewaretoken: $("input[name='id_csrfmiddlewaretoken").val(),
???? backup_from: $("#backupSubmit").serialize()
},
function(data) {
data = json_parse(data);
if(data.status=="success") {
return true;
} else {
console.log("status: "+data.status)
console.log("error: "+data.error)
console.log("POST DATA: "+data.data)
$.each(data.data, function(i, n){
console.log(">"+i+": "+n);
});
return false;
}
},
"json"
);
}
但在看来,表格似乎是无效的!这是我的表格:
BACKUP_CHOICES = (('systemSettings',_("systemSettings")),
('ruleSet',_("ruleSet")))
class backupForm(forms.Form):
backup_from = forms.MultipleChoiceField(widget=CheckboxSelectMultiple, label=_("backup from"), required=True,
choices=BACKUP_CHOICES, error_messages={'required': _("Please choose at least one option")})
它通过 post 发送数据,除了要求之外,我没有任何验证检查。我不知道为什么表格无效?像上面这样发送表单数据是否正确(在????旁边)?感谢您的帮助: