将表单字段发送到jquery

时间:2014-05-29 18:25:29

标签: javascript jquery ajax

我试图将所有表单字段传递给ajax函数,我将用户插入数据库。

但由于某种原因,我的警报(在我的JS档案中)并没有显示任何内容。

任何想法我做错了什么?

我的HTML:

        <form id="signupForm">
            <input id="signupFormEmail" type="text" name="email" placeholder=" E-mail"><br />
            <input id="signupFormPassword" type="text" name="password" placeholder=" Password"><br />
            <input id="signupFormUsername" type="text" name="userName" placeholder=" User Name"><br />
            <input id="submitSignup" type="button" value="SIGN UP" onclick="signUp(this);">
        </form>

我的javascript文件:

function signUp(elem)
{   
var postData = $(this).serializeArray();

//$('#myResults').html(postData);
alert($.param($(elem).serializeArray()));

if($(elem).parent().children('#signupFormEmail').val() != ''){      
    // verifica se o email já existe
    $.ajax(
    {
          url: "/newsletter/check-email/",
          type: "POST",
          data: {type:'check',email:$(elem).parent().children('#signupFormEmail').val()}
    }).done(function(response)
    {   
        if(response == -1) {
            $.ajax(
            {
              url: "/newsignup/registare/",
              type: "POST",
              data: postData
            }).done(function(userCreated) {
                if(userCreated == 1) {
                alert('user created');
                    /*
                    $(elem).parent().children('#signupForm').val('');
                    $('#signUpCompleted').show();
                    */
                } 
                else
                {
                    /*$('#signUpError').show();*/
                    alert('user not created');
                }
            })

            //testing
            //$('#signUpCompleted').show();
        }
        else //testing
        {
            $('.emailError').show(); //testing
        }

    }
    );
}
}

2 个答案:

答案 0 :(得分:2)

看起来你正在序列化元素本身。您必须序列化表单,请检查一下。

function signUp(elem)
    {   
    var postData = $('form').serialize();
    //$('#myResults').html(postData);
    alert(postData);

    if($(elem).parent().children('#signupFormEmail').val() != ''){      
        // verifica se o email já existe
        $.ajax(
        {
              url: "/newsletter/check-email/",
              type: "POST",
              data: {type:'check',email:$(elem).parent().children('#signupFormEmail').val()}
        }).done(function(response)
        {   
            if(response == -1) {
                $.ajax(
                {
                  url: "/newsignup/registare/",
                  type: "POST",
                  data: postData
                }).done(function(userCreated) {
                    if(userCreated == 1) {
                    alert('user created');
                        /*
                        $(elem).parent().children('#signupForm').val('');
                        $('#signUpCompleted').show();
                        */
                    } 
                    else
                    {
                        /*$('#signUpError').show();*/
                        alert('user not created');
                    }
                })

                //testing
                //$('#signUpCompleted').show();
            }
            else //testing
            {
                $('.emailError').show(); //testing
            }

        }
        );
    }
    }

答案 1 :(得分:0)

onclick属性中,this不是FORM; this是您点击的按钮。