繁体   English   中英

jQuery 更改事件序列

[英]jQuery change event sequence

我在表单上的 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;
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM