0

ajaxを使用してフォームを送信したい。

以下は私のコードです:

$("#loginForm").submit(function() {
var url = <url>;
$.ajax({
       type: "POST",
       url: url,
       data: $("#loginForm").serialize(), // serializes the form's elements.
       success: function(data)
       {
            if(data == '0'){ 
                    $("#loginErr").show();
                    return false;
            }
            else if(data == '1')
                    return true;
       }
     });
  return false;
});

ajax 応答が 1 の場合にフォームを送信したいのですが、データ値に関係なく、フォームが送信されません。常に戻り値 false を取得します。else if条件に到達することを確認しましたが、リターン時に実行が停止しません。

フォームを送信するにはどうすればよいですか? ページを更新したい。

4

3 に答える 3

1

それを使用します:

$("#loginForm").submit(function (event) {
    var url = < url > ;
    $.ajax({
        type: "POST",
        url: url,
        context:this, //setting context on form
        data: $("#loginForm").serialize(), // serializes the form's elements.
        success: function (data) {
            if (data == '0') $("#loginErr").show();    
            else if (data == '1') this.submit();//use js submit event, not jq. We need to manually submit it now that we know its successful
        }
    });
    event.preventDefault(); //Stop the form submitting straight away
});
于 2013-06-27T12:40:00.823 に答える
0

どのデータを確認したいかわかりません。ただし、このデータがフォーム自体からのものである場合は、ajax 呼び出しの前に確認する必要があります。ajax post 呼び出しを行うと、フォームは既に送信されています。

 $("#loginForm").submit(function(e) 
 {

 var url = <url>;
 e.preventDefault();
 mydata = $("#loginForm").serialize();
 //Your check here
 if(mydata == '0')
 { 
      $("#loginErr").show();
      return false;
 }

 $.ajax({
   type: "POST",
   url: url,
   data: mydata,
   success: function(response)
   {
        //this is your post response processor
   }
 });
 return false;
 });
于 2013-06-27T12:50:18.910 に答える