jQuery 1.7 .on()和动态表单捕获

时间:2012-01-09 16:42:27

标签: jquery ajax forms jquery-1.7

我遇到了jQuery 1.7最新on()函数的问题。我正在将所有现有live()次调用移至新的on()函数。

过去,每当我创建一个新元素或从AJAX中添加一些标记时,我都会使用live()

使用jQuery 1.7如果我追加通过AJAX返回的表单标记并尝试使用e.preventDefaultreturn false来阻止它提交(例如验证它) - 表单将照常提交。 / p>

$(document).on('submit', 'form', function(e) {
    alert('You tried to submit the form');
    e.preventDefault();
});

2 个答案:

答案 0 :(得分:1)

您的代码完全有效。

DEMO

如果您发布更多代码,我们可以查看一下,看看您是否还有其他问题


但假设在呈现页面时存在此表单,我只会这样做:

$("form").on('submit', function(e) {
    alert('You tried to submit the form');
    e.preventDefault();
});

(我假设您的页面已使用已存在的表单呈现)

答案 1 :(得分:0)

这已被确认为1.7.1中的jQuery错误,将在1.7.2中修复:http://bugs.jquery.com/ticket/11145

我的原始代码是正确的(对于动态DOM元素)。 Adam Rackis的代码对于现有的DOM元素是正确的。