0

私が書いたjavascript/jqueryスクリプトに2番目のフォームを追加しようとしていましたが、実装してテストを開始したときに、jquery postリクエストを介して会社のフォームを送信しようとすると、代わりにgetリクエストが送信されました. これが 2 番目のフォームに関係していることはわかっています。2 番目のフォームのスクリプトをコメント アウトすると、サイトが再び機能するようになるからです。新鮮な目でお役に立てれば幸いです!(ロードページ機能も同様に機能します)

登録機能は、問題がある場所にあるようです:

  //when the user first goes to the page
  $(document).ready(function(){ 
        var user = $("#username");
        var pass = $("#password");
        var submit = $("#submit");

            //both of these methods work, I'm not sure if one is better than the other
    //$("#submitbutton").click(function(event){
    $("#loginform").on('submit', function(event){
    event.preventDefault();
    $('.loginerror').remove();
    $.post("login.php", {username:user.val(), password:pass.val()}, function(data){

        if(!data)
        {
            $("#login").append("<h3 class='loginerror'>Incorrect Username or Password</h3>");

        }

        else
        {
        loadpage();
        }

    }, "json");

});

//if the user clicks the username prompt him with the login div
$("#registerbutton").click(function(event){
    register();
});

});

function register()
{
$("#login").hide("slow");
$("#registerdiv").css("display", "block");

//initiate some variables
var regusername = $("#regusername");
var reg1password = $("#reg1password");
var reg2password = $("#reg2password");
var regemail = $("#regemail");
var regfirstname = $("#regfirstname");
var reglastname = $("#reglastname");

//TODO: check to make sure form is filled out properly
$("#registerform").on('submit', function(event){

    event.preventDefault();
    //send post request
    $.post("register.php", {regusername:regusername.val(), password1:reg1password.val(), password2:reg2password.val(), email:regemail.val(), firstname:regfirstname.val(), lastname:reglastname.val()}, function(data){
        if(!data)
            $("#registerdiv").append("<h3> class='loginerror'>Server error, retry</h3>");
        else
            $("#registerdiv").hide("slow");
            $("#loginiv").slidedown("slow");
    }, "json");

}

2 つのフォームを含む HTML は次のとおりです。

<body>

<Div id="welcome"> Welcome </div>
<Div id="login">
    <br><br><h2>Welcome to QuotesLib</h2>
    <br><br><br><form id="loginform"> Username:
    <input type = "text" name = "username" id ="username"> <br> Password:
    <input type = "password" name = "password" id = "password"> <br>
    <input type = "submit" name="submitbutton" id="submitbutton" class = "bluebutton"> 
    </form>
    <form><br><br><br>Don't have an account yet?<br><button id="registerbutton" name="registerbutton" href="register.html">Register Now</button>    

</Div>
<Div id="registerdiv">
    <br><br><h2>Sign Up For QuotesLib</h2>
    <br><form id="registerform"> Username:
    <input type ="text" id="regusername"> <br> Password:
    <input type ="password" id="reg1password"> <br> Repeat Password:
    <input type ="password" id="reg2password"> <br> First Name:
    <input type ="text" id="regfirstname"> <br> Last Name:
    <input type ="text" id="reglastname"> <br> email:
    <input type ="text" id="regEmail"> <br>
    <input type ="submit" id ="registersubmitbutton">
    <br> </form>
</Div> 

誰かがこの質問に答えてくれたらとても助かります!

4

2 に答える 2

0

コードにいくつかの間違いがありますが、

最初、

<form><br><br><br>Don't have an account yet?<br><button id="registerbutton" name="registerbutton" href="register.html">Register Now</button>

開始タグはありますがform終了タグはありません。フォームタグはこのボタンには必要ありません。それが問題の主な理由でした

第二に、JS コードの終わり、

}, "json");

}

する必要があります

}, "json");
    });
}​

コピペで聞き逃したかどうかはわかりませんが、

三番、

<h3>あなたが抱えている問題の問題ではありませんが、append メソッド内のタグ。

コードの開始タグ、終了タグ、中括弧を強調表示するテキスト エディタを使用することをお勧めします。

ここで作業コード

于 2012-08-18T05:06:50.257 に答える
0
$("#registerdiv").append("<h3> class='loginerror'>Server error, retry</h3>");

する必要があります

$("#registerdiv").append("<h3 class='loginerror'>Server error, retry</h3>");

違いを見てください: <h3>...そして<h3 ...

于 2012-08-18T02:52:03.457 に答える