2012-03-22 132 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> 

而且我對形式的事件處理程序提交。下面是代碼:

$("#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返回

「0 |錯誤信息」 或 「1 |腳本將字段的值」,我把 與ID = 「script_area」 的DIV

。問題在於$("#arca").submit();行在提交表單時一直存在。我怎麼解決這個問題?感謝幫助。

回答

3

$("#arca")[0].submit();代替$("#arca").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調用的情況下提交。 – 2012-03-22 08:54:28