Как я могу автоматически перейти к следующему полю с помощью jQuery? - PullRequest
7 голосов
/ 15 июня 2011

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

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

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

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

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

Есть идеи?

Ответы [ 4 ]

3 голосов
/ 15 июня 2011

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

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

2 голосов
/ 06 октября 2013

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

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

2 голосов
/ 15 июня 2011

Вот одно из решений, через 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();
0 голосов
/ 15 июня 2011

Пытались ли вы использовать

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...