表单提交页面通常都需要做前端验证,有时不仅在提交按钮时需要验证一下表单内的内容,输入框失去焦点时也需要做验证处理。但是这样有一个bug,那就是人们可以输完后直接点击提交按钮,这样便会造成二次验证。
问题就是上面的描述,处理方法也是从网上找到的,不过忘记出处了。
处理的方法是利用timeout来解决,示例代码如下所示:
/* 点击按钮时不触发input的blur事件 */
var timer;
$("#search").on("blur",function(){
timer = setTimeout(function () {
console.log(11111);
},200)
});
$("#button").on("click",function(){
clearTimeout(timer);
console.log(22222);
})
其中,#search是一个输入框,#button是提交按钮,通过定时器延时解决了两个时间同时触发的bug。