在JavaScript中取消onBlur事件?
我想为一个输入元素设置一个onBlur事件来validation该值,如果无效,则“取消”模糊并重新聚焦输入。 但是,从onBlur返回false并不会像onClick那样取消onBlur 。 有没有解决方案(也许使用jQuery?)
我不知道有任何可靠的跨浏览器方式来做到这一点。 通常在onblur
事件中设置一个小超时,并在计时器触发时调用focus()
。
例如:
document.getElementById('your_input_id').onblur = function() { var self = this; setTimeout(function() { self.focus(); }, 10); }
您可以在处理程序中调用focus()
。
这有时会有所帮助。
你可以通过在零秒超时内使用jQuery的focus()
函数来实现这一点。 这是一个例子:
$('#my_input').bind('blur', function(event) { var $input = $(this); var is_input_valid = false; // Code to determine if input is valid // ... if (!is_input_valid) { setTimeout(function() { $input.focus(); }, 0); return false; } });