jQuery: текстовая область фокусировки после загрузки ajax

#jquery #ajax #focus

#jquery #ajax #фокус

Вопрос:

Я использую Ajax для загрузки частей формы. Как я могу сфокусировать объект текстовой области после запроса ajax?

Это загруженный html:

 <legend>Test</legend>
<label for="t">This is only a test</label>
<textarea></textarea>
<a href="#" class="continue">Continue</a>
 

Это код jQuery / Ajax:

 $.post(
    'ajax.php',
    { next:next },
    function(data){
        $('body').append($(data).hide().fadeIn('slow'));
    }
);
 

Спасибо.

Ответ №1:

Используйте триггер .focus() в обратном вызове после добавления html:

 $.post(
    'ajax.php',
    { next:next },
    function(data){
        $('body').append($(data).hide().fadeIn('slow'));
        $('textarea').focus();
    }
);
 

Ответ №2:

Этот фрагмент ищет атрибут «автофокусировки» в вашем HTML-файле и фокусируется на данном элементе.

 $('[autofocus]').focus()
 

Таким образом, если представление загружается в Ajax, оно работает, и если нет JavaScript и представление загружается без ajax, вы все равно получаете автофокусировку.