Jquery 如何在动态元素上使用默认值?

Jquery 如何在动态元素上使用默认值?,jquery,forms,dynamic,preventdefault,Jquery,Forms,Dynamic,Preventdefault,我有一个动态创建并添加到div的表单。每个表单的id也是动态创建的-id总是不同的,但它们都以 updateFRM_ 我无法让preventDefault()工作-我不确定这是不是问题所在,或者语法是否太不正确,导致js失败并重新加载 为动态生成和动态命名的表单设置侦听器的正确语法是什么 $( "#updater" ).on( "submit", "form[id^='updateFRM_']", function(e) { e.preventDefault(); 感谢您的时间和帮

我有一个动态创建并添加到div的表单。每个表单的id也是动态创建的-id总是不同的,但它们都以

updateFRM_
我无法让preventDefault()工作-我不确定这是不是问题所在,或者语法是否太不正确,导致js失败并重新加载

为动态生成和动态命名的表单设置侦听器的正确语法是什么

$( "#updater" ).on( "submit", "form[id^='updateFRM_']", function(e)
{ 
    e.preventDefault();
感谢您的时间和帮助

试试这个

 $(function(){
    $("form[id^='updateFRM_']").on("submit", function(e){
        e.preventDefault();
    });
 });

您应该为表单分配一个类,如
。防止默认值
,并以这种方式操作它们。处理动态生成的ID是一件非常麻烦的事情,尤其是使用CSS选择器。

使用
$(文档)
选择器,您可以将动态生成的元素作为目标。这是因为文档覆盖了dom,而不仅仅是最初加载的html。下面是两个关于你能做什么的例子。这完全取决于您的代码以及您将使用这两种代码的方式

基于身份的 基于类 更新
返回false不是必需的。我在
e.preventDefault()失败时添加了它。一些jQuery版本有不同的方法来阻止默认操作。使用
返回false做同样的事情。它执行上面的代码,然后,而不是执行默认操作,返回
false

您的表单怎么可能有多个ID?它有
#updater
#updateFRM
是动态创建的更新程序。。尝试使用$('body')而不是$(“#updater”),我认为如果
#updater
是静态元素,您的代码应该可以工作。当dom加载时,他在场,是吗?谢谢各位。动态id是通过胡须添加的,因此,例如id=“updateFRM_432”#更新程序是静态的-从一开始就是html页面的一部分。谢谢Peter。我认为你的课堂想法对我来说是最好的方式,但它仍然是自动提交的。我使用的类是responsiveFormPadded UpdatedForm,因此我的侦听器看起来像$(“#updater”)。在('submit','responsiveFormPadded UpdateForm',函数(e){…我还尝试了$(document)。在('submit','responsiveFormPadded UpdateForm',函数(e){…没关系!!!发现我的错误-课程部分应该是“.responsiveFormPadded.UpdatePerform”-谢谢!!!!事实上-一个问题,如果你能够展开,请Peter-为什么我们需要返回错误;?非常感谢Peter-现在一切都很好,关于返回错误包含的附加解释也澄清了问题。T汉克斯·凯文-已经这样做了。谢谢你,沃德-我看这也行,但是为了让事情更简单,我从彼得那里选了一个类选择器。
var formid = 'someformid';
$(document).on('submit', '#' + formid, function(e) {
    e.preventDefault();
    // Do your form stuff
    return false;
});
$(document).on('submit', '.my-form', function(e) {
    e.preventDefault();
    var formid = $(this).attr('id');
    // Do stuff with the formid 
    return false;
});