0

我在 html 中有一个注册表单,其中有一个按钮类型submit和名称registerSubmit如下:

<input class="RegisterButton right green" name="registerSubmit" type="submit" value="Continue">

我想用 Ajax 检查表单,然后如果每件事都有效,那么将用户重定向到她/他的个人资料。但是当我想将用户重定向到他/她的个人资料时,我无法发送其名称为的提交输入registerSubmit. 这是与此事件相关的一段 JQuery 代码:

$("#mainRegisterForm").submit(function(event){
    var thisRegisterForm = $(this);
    $(".ajaxLogoRegister").show();
    event.preventDefault();
    var firstName = $("input[name='firstname']").val();
    var lastName = $("input[name='lastname']").val();
    var emailAddress = $("input[name='email']").val();
    var password = $("input[name='password']").val();
    var rePass = $("input[name='rePass']").val();
    var sex = "NULL";
    if ($("input[name='gender']").is(":checked")){
        sex = $("input[name='gender']:checked").val();
    }
    var data ={
        firstname:firstName,
        lastname:lastName,
        emailaddress:emailAddress,
        password:password,
        repass:rePass,
        sex:sex
    };
    $.ajax({
        url: 'ajax/registercheck',
        data: data,
        dataType: 'json',
        success:function(result){
            if(result.fn==0){
                //do some stuff
            }
            //another if conditions that checks the validity of every field of refister form
            ...
            ...
            $(".ajaxLogoRegister").hide();
            if(result.isOK=='1'){ //isOK = 1 when every filed is valid and user must redirect to his/her profile
                thisRegisterForm.unbind('submit').submit();
            }
        }
    });
});

我的主要问题是,当我单击返回对象中views.py的registerSubmit 按钮而不是值时。 当我不使用 Ajax 并通常发送表单时,值为 Continue 并且一切正常。我错在哪里?request.POST.get('registerSubmit')NoneContinue
registerSubmit

4

1 回答 1

0

默认情况下,$.ajax();将发出 GET 请求,而不是 POST。您需要在 ajax 选项中指定。其次,我看不到您在哪里访问名为“registerSubmit”的元素的值。我看到一个“rePass”,但你没有包括你期望在请求中找到的值。

您需要将“类型”ajax 选项专门设置type为“POST”或method从表单元素中检索属性:

$ajax({
    url: 'ajax/registercheck',
    data: data,
    dataType: 'json',
    type: 'POST',
    ....
});
于 2013-10-19T18:18:22.857 回答