2012-05-15 2 views
0

Мне нужно сфокусировать текстовое поле, которое на размытие переходит к следующей коробке. но, если обнаружена ошибка, ее нужно снова сфокусировать.автофокус в том же текстовом поле на размытие

вот мой код

<input type="text" id="error_code'" name="errorcode[]" onblur="validate_code(this.id)"/> 

function validate_code(id){ 
var error_code=$("#"+id).val(); 

if(isNaN(error_code)) 
    { 
     $('#'+id).val(""); 
     $('#'+id).focus(); 
    } 
} 

однако этот идентификатор не устанавливать фокус на одном текстовом поле. Тпй.

EDIT: Возможность подтверждения и получения результата. Но, на мой вопрос о повторной фокусировки текстовое поле, если возвращается ошибка ...

+0

проверить, можете ли вы предупредить правильный идентификатор. – Bongs

+0

yep, что я получаю, даже значения .. – sree

+0

Какое значение вы получаете? возможно, он никогда не входит в условие 'if', потому что он терпит неудачу. – Bongs

ответ

0

Попробуйте что-то вроде этого .. это работает отлично:

HTML:

<input type="text" id="error_code"/> 

Jquery размытие функции:

$(document).ready(function(){ 
$("#error_code").blur(function(){ 
var error_code=$(this).val(); 
if(isNaN(error_code))  { 
$(this).val("");    
$(this).focus();  
}  
}); 
}); 
+0

Js Fiddle для тех же @ http://jsfiddle.net/rutwik/GENe8/ – TRR

+0

Не работает, я использую mozilla ... и мне нужно работать, что в mozilla :) – sree

+0

ОК работает в IE 8, хотя .. . – TRR

0

Вы должны проба что-то вроде этого.

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
</head> 
 
<body> 
 
<div id="example"> 
 
    <div> 
 
     <input type="text" id="error_code" name="errorcode[]" onblur="validate_code(this.id)"/> 
 
    </div> 
 
    <script> 
 
     function validate_code(id){ 
 
\t  var error_code=$("#"+id).val(); 
 
       if(isNaN(error_code)) { 
 
\t \t setTimeout(function() { 
 
\t \t  $('#'+id).val(""); 
 
\t \t  $('#'+id).focus(); 
 
\t \t }, 0); 
 
\t  } 
 
\t } 
 
    </script> 
 
</div> 
 

 

 
</body> 
 
</html>

В случае JQuery его уже пытается установить фокус на поле. Он блокирует дальнейшие фокусные события в поле. Вам нужно взломать что-то вроде этого.