Как установить фокус на поле ввода с помощью JQuery



учитывая следующую структуру HTML:



<div class="wrapper">
<div class="top">
<a href="http://example.com" class="link">click here</a>
</div>
<div class="middle">
some text
</div>
<div class="bottom">
<form>
<input type="text" class="post">
<input type="submit">
</form>
</div>
<div>


который будет повторяться несколько раз на странице, как мне установить фокус на поле ввода в .bottom div, когда пользователь нажимает на ссылку в .top div?



в настоящее время я делаю .bottom div успешно появляется при щелчке с помощью кода JQuery ниже, но, похоже, не может понять, как одновременно установить фокус на поле ввода.



$('.link').click(function() {
$(this).parent().siblings('div.bottom').show();
});


спасибо!

629   2  

2 ответов:

попробуйте это, чтобы установить фокус на первое поле ввода:

$(this).parent().siblings('div.bottom').find("input.post").focus();

ответ Джастина не сработал для меня (Chromium 18, Firefox 43.0.1). в jQuery .focus() создает визуальное выделение, но текстовый курсор не отображается в поле (jquery 3.1.0).

вдохновленный https://www.sitepoint.com/jqueryhtml5-input-focus-cursor-positions/, я добавил автофокус в поле ввода и вуаля!

function addfield() {
    n=$('table tr').length;
    $('table').append('<tr><td><input name=field'+n+' autofocus></td><td><input name=value'+n+'></td></tr>');
    $('input[name="aa"'+n+']').focus();
}

Comments

    Ничего не найдено.