如何在Javascript中处理Ajax生成的表单?

时间:2015-09-23 18:53:42

标签: javascript jquery html ajax forms

所以我使用这个Javascript来处理表单:

$(':submit:not(.form-default-submit)').click(function(event) {
    //Disable normal form submission, handle using ajax
});

在大多数情况下,它可以正常工作。因此,忽略具有类form-default-submit的任何提交元素,并且在此Javascript中处理所有其他元素。

但我刚刚注意到这对Ajax生成的内容不起作用。我猜测是因为在加载Ajax内容之前,这段代码是在页面加载时运行的。

我看到人们使用:

$(document).on("click", selector, function(e){

作为解决此问题的方法。但就我而言,我并不是直接将它应用于元素。我有条件允许具有类form-default-submit的元素的例外。

使用新的Ajax支持的方法执行此操作的唯一方法是在函数内部使用if语句检查元素是否具有特定类?或者我可以在选择器本身内执行此操作吗?这有点高于我目前的能力,所以感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

试试这个:

$(document).on( "click",":submit:not(.form-default-submit)", function(e){

答案 1 :(得分:0)

您可以将submit事件直接绑定到表单和return false。这也将捕获使用enter密钥发送的表单。

$("#form").on("submit", function(event){

    // Send form data by AJAX
    $.post(...);

    // Prevent form to be sent the regular way
    return false;

});