2014-01-06 2 views
0

На самом деле я пытаюсь установить фокус на текстовое поле, когда фокус потерян. Причина этого заключается в том, что есть требование принудительно установить фокус на текстовое поле, если какая-либо проверка не удалась (например, проверка пустого поля), а проверка выполняется в случае размытия этого текстового поля. Я тоже пробовал это на скрипке, но кажется, что фокус есть, но курсор не мигает.Фокус ввода текстового поля на событие размытия

Please refer link :http://jsfiddle.net/zHeJY/

Пожалуйста, дайте мне знать причину этого и решения для же.

Заранее спасибо.

+0

Используйте '$ ("# inputid") фокус();. ' –

+0

@Krish R: Я пробовал с таким же подходом, но он также дает тот же результат. –

+0

Используйте метод 'on()'. 'bind()' устарел в v1.7. Или просто используйте 'blur()' –

ответ

3

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

Задача: (1) У вас нет другого элемента в скрипте, которую вы предоставили. (2) Вы ничего не проверяете, просто делаете бесконечный цикл для цикла размытия фокуса!

Решения:

Смотрите эту скрипку: http://jsfiddle.net/zHeJY/7/

При правильной процедуре проверки на месте (и другой элемент, доступный), он будет работать.

HTML:

<input id="setFocus"/> 
<input id="other" /> 

JS:

$("#setFocus").on("blur", function(e) { 
    if (! validate(this)) { 
     $(this).focus(); 
    } 
}); 
0

попробовать этот
HTML

<div id="something"> 
<input type="text" id="setFocus"/> 
<input type="text" id="setFocus1"/> 
</div> 

JS

$("#something").mouseup("blur",function(){ 
    $(this).children(":first").focus(); 
}) 

вы должны иметь родительский элемент для этого при щелчке в любом месте вы получите искомый результат

0
<html> 
<head> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"> 
</script> 
<script type="text/javascript"> 
$(document).ready(function() { 
$(document).on('blur', "#setFocus", function (e) { 
$(this).focus(); 
}); 
}); 
</script> 
</head> 
<body> 
<input type="text" id="setFocus"/> 
<input type="text" id="set"/> 
</body> 
</html> 
+0

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

Смежные вопросы