我已经从此页面编译了两个代码用于文本字段和下拉菜单。代码工作正常,只是在进入另一个字段后,它会不停地来回跳转。我猜我的问题必须在某个地方但却找不到它。提前致谢! DEMO
function doThisOnBlur() {
if (this.value==='') { var ths = $(this); setTimeout(function(){
ths.focus();
}, 1); return false; }
}
var inputs = document.getElementsByTagName('input');
var selects = document.getElementsByTagName('select');
for (var i = 0; i < inputs.length; i++)
{ inputs[i].onblur = doThisOnBlur; }
for (i = 0; i < selects.length; i++)
{ selects[i].onblur = doThisOnBlur; }
答案 0 :(得分:1)
好的,我根据你的jsfiddle做了一个我认为会有效的改变。我设置一个全局变量来保存null或当前活动字段。一旦活动字段获得一个值,那么该变量将被设置回null,用户可以进入下一个字段。
var hasPrecedence = null;
function doThisOnBlur() {
if(!hasPrecedence){ hasPrecedence = this; }
if(hasPrecedence != this){ return; }
if (this.value==='') { var ths = $(this); setTimeout(function(){
ths.focus();
}, 1); return false; }
else{
hasPrecedence = null;
}
}