2012-03-22 14 views
0

フォームがあり、送信する前にデータベースからデータを追加する必要があります。 私のhtmlコードは次のとおりです。jqueryでフォームを送信

<form action="https://91.199.226.106/services/authorize.php" id="arca" method="POST"> 
     <input type="hidden" name="hostID" id="hostID"/>                                                            
     <input type="hidden" name="mid" id="mid" /> 
     <input type="hidden" name="tid" id="tid" /> 
     <input type="hidden" name="additionalURL" id="additionalURL" /> 
     <input type="hidden" name="orderID" id="orderID" /> 
     <input type="hidden" name="currency" id="currency" /> 
     <input type="hidden" name="opaque" /> 
     amount<input type="text" name="amount" id="amount" value="" /><br> 
     <input type="submit" value="submit" /> 
    </form> 
    <div id="script_area"></div> 
    <div id="error_area"></div> 

そして私は、フォームのイベントハンドラを提出しています。私は、ID = "script_area" とdiv要素に を置く "| |エラーメッセージ0" または "フィールドの値を設定するスクリプト1"

$("#arca").submit(function(e){ 
      e.preventDefault(); 
      var data="amount="+$("#amount").val()+"&&lang=eng"; 
      $.ajax({ 
       url: "ajax/get_arca_submit_params.php", 
       type: "POST",  
       data: data,  
       cache: false, 
       success: function (html) { 
        var splited=html.split("|",2); 
        if(splited[0]=="0") 
        { 
         $("#error_area").html(splited[1]); 
        } 
        else 
        { 
         $("#script_area").html(splited[1]); 
         $("#arca").submit(); 
         //alert("aaaaa"); 

        } 
       } 
      }); 
     }); 

PHPは

を返します。ここでは、コードです

。問題は、$("#arca").submit();の行がフォームのサブミット時に断続的に表示されることです。どうすればこの問題を解決できますか?手伝ってくれてありがとう。

答えて

3

$("#arca").submit();$("#arca")[0].submit();に置き換えます。このようにして、コールバックをトリガーせず無限ループを回避する、基本となるDOM要素のsubmitイベントを呼び出しています。

0

代わりにクリックイベントを送信ボタンにバインドするように変更できます。

$("#arca").find('input[type="submit"]').click(function (e) { 
    e.preventDefault(); 
    var data = "amount=" + $("#amount").val() + "&&lang=eng"; 
    $.ajax({ 
     url: "ajax/get_arca_submit_params.php", 
     type: "POST", 
     data: data, 
     cache: false, 
     success: function (html) { 
      var splited = html.split("|", 2); 
      if (splited[0] == "0") { 
       $("#error_area").html(splited[1]); 
      } else { 
       $("#script_area").html(splited[1]); 
       $("#arca").submit(); 
       //alert("aaaaa"); 
      } 
     } 
    }); 
}); 
+0

テキストフィールド内でユーザーがEnterキーを押した場合はどうなりますか?フォームは、AJAX呼び出しが行われずに送信されます。 –

関連する問題