我有输入元素,它将接受输入并过滤内容,一旦用户从输入元素中移出焦点,就会触发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事件。
答案 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)');
});