2010-08-08 3 views
0

Когда я нажимаю на DIV, мне нужно нажать клавишу TAB (чтобы перейти от одного поля ввода к следующему).JQUERY Simulation Нажмите клавишу TAB после нажатия пользователем на DIV

Я попробовал этот код, но не работает:

$("#change_logo").click(function() { 
    e = jQuery.Event("keydown"); 
    e.which = 9; 
    // This is the ID of the input where I want to simulate the "Press TAB Key" 
    // and then I will go automatically to the following input which ID is 
    // #newsletter_section_title2 
    $("#newsletter_section_title1").trigger(e); 
}); 

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

Кто-нибудь знает, как это сделать?

Большое спасибо, Дани

ответ

2

Симуляция вкладки нажмите не будет делать эту работу здесь, это не то, что вы делаете что-то неправильное, то, что моделируя событие не часто ссылаться на действие по умолчанию, в этот случай фокусирует следующее поле. Например, .click() на <a> не будет следовать по ссылке.

Вам необходимо пройти .focus() маршрут, $('#newsletter_section_title2').focus(), чтобы получить эффект, который вы хотите здесь ... в чем ваши причины избежать его начала?

+0

+1 за вопрос ... Я тоже очень любопытно. – MvanGeest

0

Я создал simple jQuery plugin, который решает эту проблему. Он использует селектор «: tabbable» пользовательского интерфейса jQuery, чтобы найти следующий элемент «tabbable» и выбирает его.

Пример использования:

$("#change_logo").click(function() { 
    $.focusNext(); 
}); 
Смежные вопросы