jquery - 尝试使用 live()、delegate 和 bind() 提交表单

标签 jquery forms submit bind live

如果表单无效,我想在浏览器控制台中打印一条消息。

以下代码与bind有效:

jQuery(document).ready(function () {
    $('form').bind('submit', function () {
        if ($j(this).valid() == false) {
            console.log("Warning: form not valid");
        };
    });
});

当我用提交替换绑定(bind)时,效果也很好:

$('form').submit(function () {

但是当我使用委托(delegate)时不起作用:

$('body').delegate('form', 'submit', function () {

即使live也没有成功:

$('form').live('submit', function () {

表单不是动态插入的。 live 和 delegate 不起作用的原因可能是什么?

编辑

我刚刚发现 jquery.validate.min.js 导致了这个问题。嗯,但是我怎样才能防止我自己的表单事件被阻止呢?

最佳答案

您将在 form 元素上或 formbody 之间的祖先上有另一个处理程序,这会阻止传播事件,可以通过;

  1. 调用 stopPropagation()在事件对象上
  2. 调用 stopImmediatePropagation()在事件对象上
  3. 从事件处理程序返回 false

您需要找到该处理程序并阻止它这样做。请记住,这也可能是您启用的插件的工作。

关于jquery - 尝试使用 live()、delegate 和 bind() 提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9115115/

相关文章:

JavaScript URL重定向: Is there an issue with this code?

javascript - React Hook Form - 智能组件 - 当输入被包装在元素中时表单被破坏

php - FORM(使用 Javascript)在 PHP 页面中不起作用!

javascript - 如何使用 jQuery 检查两个复选框是否都具有非空值

javascript - 传递 AJAX 响应数据字段时,stringify() 意外返回未定义

javascript - Javascript 中的 Html.Partial

javascript - flot - 轴标签 - monthNames 排序错误?

ruby-on-rails - 用于提交作为字符串传递的数组的 Rails 5 表单

python - 将值保存到数据库 Django

jquery - 确定哪个链接提交了表单