Подтвердить что ты не робот

Динамическое добавление tabindex

Я хочу добавить tabindex ко всем элементам формы. Форма является dymanic, и я не могу добавить ее в HTML. Я хотел бы запустить его как функцию. Если имеется несколько радиообъектов с одинаковым именем, каждое из них должно иметь собственное значение tabindex. Большинство элементов формы на странице начинаются как INPUT, кроме SELECT. Как мне объяснить это?

Я думаю, мне нужно будет запустить цикл и добавить атрибут, правильно?

var n = 1; 

$('input, select').each(function() {               
    $(this).attr('tabindex', n++);
});
4b9b3361

Ответ 1

Странный вопрос, но да, что основная идея

$(":input:not(:hidden)").each(function (i) { $(this).attr('tabindex', i + 1); });

Он использует : ввод, чтобы получить все, включая кнопки и текстовые области. :not(:hidden) просто исключит скрытые вводы, чтобы избежать ненужных вкладок.

Ответ 2

Может быть, лучше избегать n++ для установки различных номеров tabindex.

Вместо этого попробуйте установить tabindex в 0:

$(':input:visible').each(function() {               
    $(this).attr('tabindex', '0');
});

tabindex="0" означает, что элемент должен быть фокусируемым при последовательной навигации по клавиатуре, но его порядок определяется порядком источника документа. ~ developer.mozilla.org

Селектор :input основном выбирает все элементы управления формы.

Селектор :visible основном выделяет все видимые элементы.