Javascript - Onblur重新聚焦

时间:2012-12-21 20:28:36

标签: prototype

我已经从此页面编译了两个代码用于文本字段和下拉菜单。代码工作正常,只是在进入另一个字段后,它会不停地来回跳转。我猜我的问题必须在某个地方但却找不到它。提前致谢! 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; }

1 个答案:

答案 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;
  }
}