2016-10-25 5 views
0

に2つの要求を送信します。jQueryのは、私は次のHTMLフォームに持って、同じURL

  // JavaScript Document 
      "use strict"; 
      $(document).ready(function(e) { 
       $(".user_create_form").bind("submit",function(event){ 
        event.preventDefault(); 
        if($("#roles").val() == ""){ 
         $("#roles").focus(); 
         $("#msg").html('Please select Module for User').addClass("text-danger"); 
         return false; 
         } 
        else if($("#emp_sno").val() == ""){ 
         $("#emp_sno").focus(); 
         $("#msg").html('Please select employee for the login').addClass("text-danger"); 
         return false; 
         } 
        else if($.trim($("#userid").val()) == ""){ 
         $("#userid").focus(); 
         $("#msg").html('User id is required here').addClass("text-danger"); 
         return false; 
         } 
        else if($.trim($("#userkey").val()) == ""){ 
         $("#userkey").focus(); 
         $("#msg").html('Please choose password for user login').addClass("text-danger"); 
         return false; 
         } 
        else if($.trim($("#cuserkey").val()) == ""){ 
         $("#cuserkey").focus(); 
         $("#msg").html('Password confirmation required').addClass("text-danger"); 
         return false; 
         } 
        else if($.trim($("#userkey").val()) != $.trim($("#cuserkey").val())){ 
         $("#cuserkey").focus(); 
         $("#msg").html('Password does not match').addClass("text-danger"); 
         return false; 
         } 
        else{ 
         // save login information to database 
         $.ajax({ 
          url: 'myPageUrl.php', 
          data: new FormData(this), 
          type:"POST", 
          cache:false, 
          contentType:false, 
          processData:false, 
          success: function(txt){ 
           $("#msg").html(txt).removeClass('text-danger'); 
           }, 
          error: function(xhr){ 
           $("#msg").html(xhr); 
           } 
          }); 
         } 
        }); 
      }); 

すべてのものは完璧うとしているが、問題は、私はFirefoxの「Firebugの」拡張子にネットタブ上のネットワークプロセスをチェックするとき、それは1回のクリックで同じURLに2つの要求を示したということですか?

ここで私は間違っていると混乱していますか?なぜワンクリックで同じURLに2つのリクエストを送信するのですか?任意のヘルプは非常に高く評価され、

+0

あなたはクラスで選択を実行している、あなたは最初のページがレンダリングされた後、あなただけのページ上の<フォームクラス=「user_create_form」>を持っていることを確認することができますか?あなたのコンソールで$( "。user_create_form")。lengthを実行すると、おそらく役に立ちます –

答えて

1

bindの代わりにonハンドラを使用し、バインドを解除して1回だけ起動します。

$(document).ready(function(e) { 
    $('#user_create_form').unbind().on('submit', function() { ... }) 
}) 
+0

あなたのソリューションはうまくいきました。ありがとう –

0

は、私はそれが動作すると思います。この

<form method="post" action="create_user" autocomplete="off" class="user_create_form">

のようなformタグでonsubmit="return false"を追加してください。フォームタグは作業を行い、jsは作業を行います。それで衝突が発生する可能性があります。

+0

私はあなたのソリューションをテストしましたが、それでも同じURLに2つの並列要求を送信します。 –

関連する問題