2014-12-27 74 views
0

我有一個腳本,它動態生成帶有其相應ID的表單元素,例如,從MySQL數據庫在Javascript中爲動態生成的元素生成多個AJAX代碼,

迴應說 - 4,然後

<form ID="form0"> 
<Input>.... 
<Button type="submit>.... 
</form> 

<form ID="form1"> 
<Input>.... 
<Button type="submit>.... 
</form> 

<form ID="form2"> 
<Input>.... 
<Button type="submit>.... 
</form> 

<form ID="form3"> 
<Input>.... 
<Button type="submit>.... 
</form> 

一旦生成的形式這份名單中,我有一個檢測的提交按鈕和發送的輸入值關通過PHP頁面dB的AJAX代碼,這樣的下面,

$(document.body).on('submit', '#form' ,function(e){ 
e.preventDefault(); 
var postData = $("#form").serialize(); 

$.post("../../../functions/processing.php",postData,function(data, status){ 
    var selectedData = JSON.parse(data);  
    $.each(selectedData, function(i, val) { 
      // do something here...           
     }); 
}); 
}); 

所以我的問題是,對於形式的名單,我必須以某種方式產生的這個AJAX代碼倍數form0,Form1上,窗口2,form3 ..因爲我不能預計將會生成多少個表單,我不能只寫一個類似的AJAX代碼上面的那個..是否有動態生成動態生成的多個表單的AJAX代碼?

回答

1

爲表單提供一個類,將其標識爲要由AJAX處理程序處理的表單。然後,在處理程序內部,參考this以獲取正在提交的表單元素。

<form ID="form0" class="js-ajax-form"> 
    <input>.... 
    <button type="submit>.... 
</form> 

處理器

$(document).on('submit', '.js-ajax-form' ,function(e){ 

    e.preventDefault(); 
    var postData = $(this).serialize(); 

    $.post("../../../functions/processing.php",postData,function(data, status){ 
     var selectedData = JSON.parse(data);  
     $.each(selectedData, function(i, val) { 
       // do something here...           
      }); 
    }); 

}); 
+0

哦,是的,這是真棒,就像一個魅力!非常感謝 :) – lukieleetronic 2014-12-27 17:00:56