Jquery脚本不适用于新元素

时间:2016-01-26 00:26:41

标签: javascript jquery html ajax forms

目前,我编写的Ajax Form工作得很好,表单中的所有输出都会放入Result,此时表格的结果是另一种形式,我的脚本不适用于结果的新表单旧形式

我的脚本不适用于新表单所以,我需要让新表单像旧表单一样工作,这可能吗?

$(document).ready(function()
{
    $("form").submit(function(e)
    {
        e.preventDefault();
        $("#Result").html("<div id='Loading'></div>");

        $.ajax(
        {
            type: "POST",
            data: $(this).serializeArray(),
            success: function(Data)
            {
               $("#Result").html(Data);
            }
        });
    });
});

2 个答案:

答案 0 :(得分:2)

尝试

$("#Result").on("submit", "form", function(e) { 
    ...  YOUR CODE  .....
});

编辑:如果您想要捕获全局表单提交事件(Thanks @pratikwebdev):

$(document).on("submit", "form", function(e) { 
    ...  YOUR CODE  .....
});

答案 1 :(得分:1)

试试这个:

$("body").on("submit", "form", function(e){ 
  //Your code.
});

您遇到的问题是因为当您将提交侦听器添加到&#34; form&#34;时,动态创建的form元素不存在,所以那些新的{{1}没有附加听众。

  

事件委托允许我们将单个事件监听器附加到   父元素,将为匹配a的所有后代触发   选择器,无论这些后代现在存在还是被添加到   将来

有关jQuery.onevent delegation

的更多信息