如何创建动态ajax提交表单

时间:2016-05-12 09:33:16

标签: javascript php jquery ajax forms

我在页面中有10个表单&数据是通过ajax提交的,现在我不想为每个表单创建一个ajax脚本。所以这就是我试过的

var form_id = $(this).closest("form").attr('id');
      $(document).on("submit", "#"+form_id, function(e){
      e.preventDefault();
var postData = $("#"form_id).serialize()
var send = true;
var ptel = 1;

$("#"+form_id).find("input").each(function () {
    if ($(this).val() === '') { send = false; ptel = 0; }
});
if(ptel == 0) { bootbox.alert('Please Fill All fields'); }
    if(send){
    $('form_id').trigger("reset");
    $.ajax({
    type: "POST",
    url: "/ajax/X-Profile",
    data: postData,                    
    cache: false,
    success: function(msg)
 {

bootbox.alert('Your Profile has been updated.');
   }

});
}
return false;
});

var form_id导致未定义,因为当页面加载时没有定义任何属性

以上代码只是为了让你明白, 所以我的问题是如何通过单个ajax函数提交10个表单

2 个答案:

答案 0 :(得分:1)

您可以创建一个函数,例如SendForm(),并将其附加到表单onsubmit属性

<form id="yourid" onsubmit="SendForm(this);return false;">

在SendForm()函数内放置脚本

例如:

function SendForm(form) {       
    var postData = form.serialize(); 
    // .......etc
}

要知道在PHP中提交了哪个表单,可以在表单中放置一个隐藏的输入,或者在SendForm上发送第二个参数,例如SendForm(node,formtype)

如果表单未提交或页面重新加载,请删除onsubmit属性并将其添加到您的JS中

$(document).on("submit","form", function(e){
    e.preventDefault();
    SendForm($(this));
    return false;
});

答案 1 :(得分:1)

具有如下的javascript功能

<script type="text/javascript">
   function submitForm(formID) {
       data = $('#'+formID).serialize();
       //your ajax code
   }
</script>

现在使用带有onclick的输入按钮,如下所示,并将表单ID作为参数传递

<input type="button" value="Submit" onclick="submitForm({formID})">

无需刷新页面即可使用。成功时,您可以触发reset()函数以形成特定的表单值。

相关问题