我使用下面的函数用 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 发送数据,除了要求之外,我没有任何验证检查。我不知道为什么表格无效?像上面这样发送表单数据是否正确(在????旁边)?感谢您的帮助: