2013-10-08 4 views
0

Я написал событие обмена в текстовое поле. в том случае, если значение меньше 10 означает я должен сосредоточиться курсор на текстовое поле для этого я попыталсяJavascript focus to text box

function myFunctionId (elt) { 
     alert(elt.id); 
     if(elt.value < 10) { alert(elt.value); 
     document.getElementById("tester").focus(); 
     }  
    } 

http://jsfiddle.net/dRkuv/588/

но фокус не работает. Как я могу это достичь?

+0

в вашей скрипке вашего HTML неправильно, вход только один тег. –

+0

Это работает для меня. – icktoofay

+0

Duplicate: http: //stackoverflow.com/questions/2097840/putting-focus-on-a-textbox-in-onchange-event Независимо отсюда, [рабочая версия] (http://jsfiddle.net/dRkuv/591 /). –

ответ

1

Это мой обходной

function myFunctionId (elt) { 
    if(elt.value < 10) { 
     window.setTimeout(function(){ 
      elt.focus(); 
     },0); 
    }  
} 

myFunction вызывается непосредственно перед тем, как потерял фокус, поэтому, если вы назовете фокус на него, это не сработает. Но если вы используете функцию setTimeout, ее можно будет назвать чуть позже.

1

Если я не ошибаюсь, это то, что вы хотите в вашем HTML:

<input type="text" onchange="myFunctionId(this);" id="tester" placeholder="Pass Element"> 

В Javscript должно быть elt.value.length <10 и вы должны SetTimeout для предотвращения текстового курсора из не показывает:

function myFunctionId (elt) { 
    console.log(elt.id); 
    if(elt.value.length < 10) { 
    console.log(elt.value); 
    setTimeout(function(){ 
     elt.focus(); 
    },1); 
    }  
} 
1
function myFunctionId (elt) { 
var val=document.getElementById("tester").value; 

     alert(elt.id); 
     if(val < 10) { alert(val); 
     document.getElementById("tester").focus(); 
     return false; 
     }  
    } 
+0

предупреждение работает, но я хочу сфокусировать текстовое поле. – muthu

1
try this http://jsfiddle.net/shashankreddy09/dRkuv/615/ 


    var interval; 
     var i=0; 
     function myFunctionId (elt) { 
      console.log(elt.id); 
      if(elt.value.length < 10) { //if ur checkin the sting length if its a number use //elt.value<10 
      console.log(elt.value); 
       interval=setInterval(function(){elt.focus(); 
              i++; 
              if(i>1) 
               clearInterval(interval); },0); 
      } 


    } 
0

Вы можете попробовать это

onblur="myFunctionId(this);" в текстовом поле

function myFunctionId (elt) { 
    //alert(elt.id); 
    if(elt.value.length < 10) { alert(elt.value); 
    elt.focus(); 
    }  
}