Как я могу автоматически перейти к следующему полю с помощью jQuery?

В jQuery, как я могу инициировать поведение пользователя, введя вкладку в следующее поле ввода?

Я пробовал это:

var e = jQuery.Event("keydown"); e.which = 9; // # Key code for the Tab key $("input").trigger(e); 

Но запуск события не перемещает курсор в следующее поле.

Я полагаю, что я мог бы перемещать курсор вручную, используя focus() , но решение о том, какое поле должно быть следующим, – это то, что браузер уже знает, как это сделать, поэтому кажется, что гораздо проще просто запустить вкладку.

Есть идеи?

См. Принятый ответ на этот вопрос . Если, например, вы хотите перенести фокус на следующее поле, когда введено определенное количество символов, вы можете использовать этот код в событии keyup и проверить введенное количество символов.

Код в этом ответе работает, получая набор входов в форме, находя выбранный вход и добавляя 1 к индексу выбранного входа, а затем вызывая событие focus на элементе с этим индексом.

Вот одно из решений: http://jqueryminute.com/set-focus-to-the-next-input-field-with-jquery/

 $.fn.focusNextInputField = function() { return this.each(function() { var fields = $(this).parents('form:eq(0),body').find(':input').not('[type=hidden]'); var index = fields.index( this ); if ( index > -1 && ( index + 1 ) < fields.length ) { fields.eq( index + 1 ).focus(); } return false; }); }; 

Используется следующее:

 $( 'current_field_selector' ).focusNextInputField(); 

Доступен плагин JQuery:

http://www.mathachew.com/sandbox/jquery-autotab/

Вы пробовали использовать

$("input").trigger( 'keypress', e );

как решение?
Я считаю, что иногда явное – это лучше всего. Если это не работает даже

$("input").trigger( 'keypress', [{preventDefault:function(){},keyCode:9}] ); ,

Надеюсь это поможет.