我想为一个验证值的输入元素设置一个onBlur事件,如果无效,则“取消”模糊并重新聚焦(或永远不会丢失)当前输入。
我已经拥有了这种代码的和平
document.getElementById('my_input_id1').onblur = function() {
var self = this;
setTimeout(function() { self.focus(); }, 10);
}
假设我的下一个聚焦元素是'my_input_id2',它也有一个“onblur”event.as焦点已经移动到'my_input_id2'。当我将焦点设置回'my_input_id1'时,第二个元素'my_input_id2'“onblur事件是我希望取消第二个元素的onblur事件。我有许多其他元素和“onlur”进行验证。
我可以停止不丢失焦点吗? 有没有其他功能可以做到没有失去焦点? 我应该使用一些不会失去焦点的其他功能吗?
还有另一种方法可以摆脱这个问题吗?
许多人提前感谢。
答案 0 :(得分:0)
试试吧
$('#my_input_id1').on('blur',function(){
if(SOME CONDITION){
setTimeout(function(){
$('#my_input_id1').focus();
},100);
return false;
}
});
答案 1 :(得分:0)
使用JavaScript非常简单:
document.getElementById('id1').onblur = function(e) {
if(this.value.length == 0) {
this.focus();
e.preventDefault();
return false;
}
}
基本上只是根据标准重新聚焦元素,当然这可以是你想要的任何东西。
这里是小提琴:http://jsfiddle.net/m4cZ2/1/