0

簡単なユーザー検証を試みていますが、html フォームでポスト リクエスト機能を使用しようとすると、ブラウザは jquery ポスト リクエストを無視し、代わりに get リクエストを送信します。新鮮な目のセットは大いに役立ちます!

スクリプトは次のとおりです。

$(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

フォームにのような終了タグが</form>なく、フォーム内にidの要素が見つからなかったsubmitため、次のコードで関数がトリガーされていない可能性があります

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

代わりに

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

すでにreturn false;使用しているので不要ですevent.preventDefault();

フォームには終了タグが必要です。すなわち

<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 に答える
0

私が問題だと思うのは、あなたがjqueryで持っているということです

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

そしてhtmlにはあなたが持っています

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

入力に ​​id="submit" を入力すると、動作するはずです:)

于 2012-08-17T07:49:07.397 に答える