jquery更改事件序列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery更改事件序列相关的知识,希望对你有一定的参考价值。

我已经在表单上的textarea中添加了ajax验证,并使用html中的onblur启动它。但是我注意到,如果我去提交,onblur事件不会触发。阅读了大量的背景后,我发现了一个setTimeout的技巧,我觉得应该通过延迟提交直到模糊之后才能工作。但我显然做错了什么或误解了什么事实,因为它不起作用。

我已经在一个文件就绪块中编写了以下代码,该文件读入页脚中的页面:

$('button[type="submit"]').click(function(){
    setTimeout(() => this,0);
    $("#description").trigger('blur');
});

任何人都可以看到/解释我的问题

答案

据我所知,您使用AJAX将文本字段值发送到服务器以验证它。

函数setTimeout在你的情况下不会有用。您必须先等待验证结果。验证结果到达后提交表格。

所以你的代码可能如下所示:

var isValid;

$("#description").on('blur', function(event){
    isValid = false;
    startValidation().then(function(){
        isValid = true;
        form.submit();
    });
});

$('button[type="submit"]').on('click', function(event){
    if (!isValid){
        event.preventDefault();
        return false;
    }
});

以上是关于jquery更改事件序列的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jquery 从“更改”事件中访问父元素

jquery可拖动事件更改子元素的css

如何使用事件侦听器来加载动画片段的循环

使用 JQuery ajax 在 DOM 操作后附加事件

如何在更改事件上添加fadeIn Jquery

为啥尽管输入的值确实发生了变化,但 jquery 更改事件却没有触发? [复制]