在js中的focusOut事件之前调用click

时间:2019-04-15 09:04:33

标签: javascript jquery html debugging browser

我有输入元素,它将接受输入并过滤内容,一旦用户从输入元素中移出焦点,就会触发filter事件。

当用户将焦点放在输入元素上并单击其中一个按钮时,将先单击click事件,然后再调用focus out事件,因为它在生成过滤内容时会产生冲突。

我尝试更改代码的顺序和其他选项,例如更改click事件的调用方式-我都找不到解决方法

 $('body').on('focusout', '.classname', functionname);

 function functionname(e) {
     if (typeof e == 'object') {
     }
 }

 $('body').on('click', '.buttonclass', function (e) {});

有人可以帮助我构建FocusOut事件以首先触发,然后触发click事件。

1 个答案:

答案 0 :(得分:0)

根据当前条件,您必须-在点击处理程序中-检索验证结果,然后根据该结果确定是否应该提交按钮。

JS代码:

$("#input").focusout(function(){    
    var that = this;    
    valid = this.value.length ? true : false;    
    !valid && window.setTimeout(function() {
        $(that).focus();
    }, 0);            
});


$("#button").click(function(e) {    
    if ( !valid ) { return false; }    
    e.preventDefault();    
    alert('execute your filter)');    
 });