【发布时间】:2012-02-02 15:37:17
【问题描述】:
如果表单无效,我想在浏览器控制台中打印一条消息。
使用 bind 的后续代码有效:
jQuery(document).ready(function () {
$('form').bind('submit', function () {
if ($j(this).valid() == false) {
console.log("Warning: form not valid");
};
});
});
当我将 bind 替换为 submit 时也能正常工作:
$('form').submit(function () {
但是当我使用 delegate 时不起作用:
$('body').delegate('form', 'submit', function () {
即使 live 也没有成功:
$('form').live('submit', function () {
表单不是动态插入的。那 live 和 delegate 不起作用的原因是什么??
编辑
我刚刚发现 jquery.validate.min.js 导致了问题。嗯,但是我怎样才能防止我自己的表单事件被阻止呢?
【问题讨论】:
-
您使用的是什么版本的 jQuery?为什么要在身体上而不是形式上进行 .live?
-
如果表单不是动态插入的,为什么不直接在表单元素上绑定事件呢?
-
抱歉,复制粘贴错误,我更新了live-Part。我正在使用 jquery 1.6.4
-
因为我稍后插入表单时也会出现该消息。
-
删除你用
.submit附加的事件,只保留delegate,看看它是否有效。
标签: jquery forms submit bind live