在ajax中找不到变量

时间:2018-04-23 01:55:26

标签: ajax

                <div class="modal-body">
        <form>
        <div class="form-group">
            <label for="email" class="col-form-label">Email address:</label>
                    <input type="email" class="form-control" id="signUpEmail" name="email">
        </div>
            <div class="form-group">
        <label for="pwd" class="col-form-label">Password:</label>
        <input type="password" class="form-control" id="signUpPassword" name="password" onchange="check_pass()">
                                         </div>  
                                                <div class="form-group">
                                                    <label for="pwd" class="col-form-label">Confirm Password:</label>
                                                    <input type="password" class="form-control" id="signUpConPassword" name="password" onchange="check_pass()">
                                                </div>
                                            </form>
                                        </div>
                                        <div class="modal-footer">
                                            <button type="submit" class="btn btn-primary" id="signUpSubmit" disabled="true" >Sign Up</button>

                                        </div>
                                    </div>
                                </div>
                            </div>

        <script type="text/javascript">
            function check_pass() 
            {
                //alert(document.getElementById('signUpPassword').value);
            if (document.getElementById('signUpPassword').value ==
                    document.getElementById('signUpConPassword').value) {
                document.getElementById('signUpSubmit').disabled = false;
            }
            else
            {
                document.getElementById('signUpSubmit').disabled = true;
            }
        }
        $('#signUpSubmit').click(function() 
        {
            //alert("signup completed");
            var email=document.getElementById('signUpEmail');
            var password = document.getElementById('signUpPassword');
            $.ajax({
                url: 'signup.php',
                type: 'POST',
                data: {
                    email: $email,
                    password: $password
                },
                success: function() {
                    alert('Email Sent');
                }               
            });
        });
        </script>

虽然我在函数内部定义了变量,但是当我点击ReferenceError: $email is not defined按钮时,此代码段会显示signupSubmit。 我也试试

var email=document.getElementById('signUpEmail').value;
var password = document.getElementById('signUpPassword').value;

但是,同样的错误。我猜变量声明存在问题。函数内部的变量声明的正确形式是什么?

2 个答案:

答案 0 :(得分:1)

您必须将$ email和$密码更改为电子邮件,密码

android:layout_height="match_parent"

答案 1 :(得分:1)

删除 $

data: {
            email: $email,
            password: $password
        },

传递的数据有两个属性 - &#34;电子邮件&#34;和&#34;密码&#34;,属性的值存储在变量 email password 中。

您的代码应如下所示:

/* Remove these two lines */
var email=document.getElementById('signUpEmail');
var password = document.getElementById('signUpPassword');

...

data: {
    "email": $("#signUpEmail").val(),
    "password": $("#signUpPassword").val()
}

$ 是jQuery函数调用,&#34;#signUpEmail&#34;是id为&#34; signUpEmail&#34;的元素的选择器。 val()方法将返回输入值。

document.getElementById("something").value

相同
$("#something").val()

如果您正在使用jQuery进行Ajax,您可以使用它来获取值。