Динамическое добавление tabindex
Я хочу добавить tabindex ко всем элементам формы. Форма является dymanic, и я не могу добавить ее в HTML. Я хотел бы запустить его как функцию. Если имеется несколько радиообъектов с одинаковым именем, каждое из них должно иметь собственное значение tabindex. Большинство элементов формы на странице начинаются как INPUT, кроме SELECT. Как мне объяснить это?
Я думаю, мне нужно будет запустить цикл и добавить атрибут, правильно?
var n = 1;
$('input, select').each(function() {
$(this).attr('tabindex', n++);
});
Ответы
Ответ 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
основном выделяет все видимые элементы.