2015-05-03 1 views
-1

Если у меня есть два поля ввода: один с атрибутом автофокуса и один без, как я могу сосредоточиться на одном без атрибута автофокуса при загрузке документа? Например:Переопределить атрибут автофокуса с Javascript/JQuery

<script type="text/javascript"> 
$(document).ready(function() { 
    // $("input[name=\"bar\"]").blur(); 
    // $("input[autofocus]").removeAttr("autofocus"); 
    $("input[name=\"foo\"]").focus(); 
}); 
</script> 
<p><input name="foo" type="text"></p> 
<p><input autofocus name="bar" type="text"></p> 

При загрузке страницы курсор фиксируется во втором поле ввода вместо первого. Я пробовал прокомментировать строки, чтобы попытаться исправить это, но у меня не было успеха.

Редактировать: Я пробовал решение, упомянутое в «дублированном вопросе», которое должно было использовать .blur() для элемента, но это не сработало. Кроме того, дублирующий вопрос отвечает только на то, как отключить автофокусировку и не отвечает, как впоследствии переориентироваться на другое поле ввода.

+0

Возможные продублируйте из http://stackoverflow.com/questions/6765681/disable-text-field-autofocus-in-javascript –

+0

@Applejack по какой-то причине, решения в упомянутом вопросе (которые должны были использовать «.blur()», а также «сфокусироваться на объекте дальше») не работали для меня, когда я пытался. – takeshibaconsuzuki

ответ

1

Проведя еще некоторое время с этим, я, наконец, понял, что «фокус» стрелял слишком рано. Чтобы решить эту проблему, все, что я должен был сделать это обернуть в SetTimeout:

setTimeout(function() { 
    $("#myTags input[type=\"text\"]").focus(); 
}, 20); 
$("input[autofocus]").blur(); 
Смежные вопросы