Sha*_*aun 3 forms jquery dynamic preventdefault
我有一堆动态创建并添加到div的表单.每个表单的id也是动态创建的 - ids总是不同的,但它们都以......开头.
updateFRM_
Run Code Online (Sandbox Code Playgroud)
我不能让preventDefault()方法的工作 - 我不知道如果是这样的问题,或者语法不正确以致js的失败和重新加载.
为动态生成和动态命名的表单设置侦听器的正确语法是什么?
$( "#updater" ).on( "submit", "form[id^='updateFRM_']", function(e)
{
e.preventDefault();
Run Code Online (Sandbox Code Playgroud)
谢谢你的时间和帮助
使用$(document)选择器,您可以定位动态生成的元素.这是因为该文档涵盖了dom,而不仅仅是最初加载的html.以下是您可以做的两个例子.这完全取决于您的代码以及您将使用这两种选择中的哪一种.
var formid = 'someformid';
$(document).on('submit', '#' + formid, function(e) {
e.preventDefault();
// Do your form stuff
return false;
});
Run Code Online (Sandbox Code Playgroud)
$(document).on('submit', '.my-form', function(e) {
e.preventDefault();
var formid = $(this).attr('id');
// Do stuff with the formid
return false;
});
Run Code Online (Sandbox Code Playgroud)
这return false;不是必需的.我添加它以防万一e.preventDefault()失败.一些jQuery版本有不同的方法来阻止默认操作.使用a return false;做同样的事情.它执行上面的代码然后,而不是执行默认操作返回false.