我遇到了jQuery 1.7最新on()
函数的问题。我正在将所有现有live()
次调用移至新的on()
函数。
过去,每当我创建一个新元素或从AJAX中添加一些标记时,我都会使用live()
。
使用jQuery 1.7如果我追加通过AJAX返回的表单标记并尝试使用e.preventDefault
或return false
来阻止它提交(例如验证它) - 表单将照常提交。 / p>
$(document).on('submit', 'form', function(e) {
alert('You tried to submit the form');
e.preventDefault();
});
答案 0 :(得分:1)
您的代码完全有效。
如果您发布更多代码,我们可以查看一下,看看您是否还有其他问题
但假设在呈现页面时存在此表单,我只会这样做:
$("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元素是正确的。