0

我正在尝试进行简单的用户验证,但是,当我尝试使用带有 html 表单的发布请求功能时,浏览器会忽略 jquery 发布请求,而是发送一个获取请求。一双新鲜的眼睛会有很大帮助!

这是脚本:

$(document).ready(function () {
    var user = $("#username");
    var pass = $("#password");
    var submit = $("#submit");

    $("#submit").click(function (event) {
        event.preventDefault();
        $.post("login.php", {
            username: user.val(),
            password: pass.val()
        }, function (data) {

            if (!data) {
                $("#login").append("Failed to reach server. Login Error.");
            }
            //$("div#login").hide();
            //$("div#welcome").css("display", "block"); else {
                loadpage();
            }

        }, "json");

        return false;
    });
});

这是html中的表单,非常简单:

<Div id="welcome"> Welcome </div>
<Div id="login">
    <br><br><h2>Welcome to This Site</h2>
    <br><br><br><form id="form"> Username:
    <input type = "text" name = "username"> <br> Password:
    <input type = "password" name = "password" id = "password"> <br>
    <input type = "submit" name="submitbutton" id="submitbutton" class = "bluebutton"> 


</Div>

只是为了消除任何可能的失败位置,我在这里硬编码了 PHP 的用户名/密码:

<?
if($username == "harry" && $password == "potter")
{
    $_SESSION["user"] = array();
    $array = array();
    $array["valid"] = "valid";
    echo(json_encode($array));
}

?>

提前致谢!

4

2 回答 2

0

我看到的问题是在jquery中你有

$("#submit").click(function(event){

在html中你有

 <input type = "submit" name="submitbutton" id="submitbutton" class = "bluebutton"> 

如果您在输入中输入 id="submit" 那么它应该可以工作:)

于 2012-08-17T07:49:07.397 回答
0

您的表单没有像这样的结束标签</form>,而且我也没有在您的表单中找到任何带有 idsubmit的元素,因此它可能没有使用以下代码触发该函数

$("#submit").click(function(event){...});

相反,它应该是

$("#submitbutton").click(function(event){...});

return false;没有必要,因为您已经使用了event.preventDefault();.

您的表单应该有一个结束标记。IE

<form id="myForm">
    <input type = "text" name = "username"> <br> Password:
    <input type = "password" name = "password" id = "password"> <br>
    <input type = "submit" name="submitbutton" id="submitbutton" class = "bluebutton">
</form>

或者,您可以使用

$('#myForm').on('submit', function(e){
    e.preventDefault();
    // Rest of your code
})
于 2012-08-17T07:50:24.957 回答