1

jQueryで入力を検証しようとしています。入力が検証され、ajax が返された場合は success、フォームの送信を許可する必要があります。で送信を防止していますe.preventDefault

私のスクリプトは:

$("#spsignin").submit(function(e){
    if (e.preventDefault) { 
        e.preventDefault(); 
    } else { 
        e.returnValue = false;
    }
    var uname = $("input#name").val();
    var pass = $("input#password").val();

    $.ajax({
        type: "POST",
        url: "Login",
        data: 'uname=' + encodeURIComponent(uname) + '&' + 'pass=' 
                       + encodeURIComponent(pass),
        dataType: "json",
        success: function( data, textStatus, jqXHR) {
            if (data == true) {
                $("#spsignin").submit();
            } else { //display error message
                $("#error").show(1500).css({visibility: "visible"});
                $("#error").append("<b>Invalid Username/Email or Password</b>");
            }
        },
        //If there was no resonse from the server
        error: function(jqXHR, textStatus, errorThrown) {
            console.log("Something really bad happened " + textStatus);
            $("#error").html(jqXHR.responseText);
        },
    });

送信アクションsuccessを実行しますが、アクションを繰り返し実行します。postコンソールにリクエスト数を表示する Firebug を意味します。postまた、応答中のリクエストの数も。

フォームは次のとおりです。

<form action="Signin" method="get" id="spsignin">
    <input type="text" name="uname" class="text validate[required]" 
        id="name" placeholder="Username"/>
    <input type="password" name="pass" class="text validate[required]" 
        id="password" placeholder="Password"/>
    <input type="submit" value="" id="memberlogin"/>
</form>

ajaxでフォームを送信する方法を誰か教えてくださいsuccess...ありがとう...

4

1 に答える 1

3

If the inputs are validated, then you could log the user in, create session from the same code and redirect to appropriate page in your success callback, like

...
success: function( data, textStatus, jqXHR) {
  if(data==true) {
   //redirect to loggedin page
   location.href = "url_to_your_loggedin_page";               
  }
于 2013-02-25T11:22:35.367 に答える