Автофокус на первое пустое поле в форме
Я пытаюсь добиться функциональности автофокуса на первом пустом поле формы, которое может быть элементом ввода или любого другого вида, т.е.
1. textbox
2. radio button
3. Select
4. checkbox
Я посмотрел на веб-сайт jquery и попытался использовать селектор :input, но я не могу добиться автофокуса на любом поле ввода, кроме текстового поля. Я также настроил JS Fiddle,
Может кто-нибудь помочь здесь?
2 ответа
Возможно, вам придется использовать filter()
найти входные данные с пустыми значениями:
$(function () {
$("input:enabled").filter(function () {
return this.value.trim() == "";
}).first().focus();
});
Это не будет работать, если вы используете checkbox
, Итак, для этого:
$(function () {
$("input:enabled").filter(function () {
if ($(this).attr("type") == "checkbox" || $(this).attr("type") == "radio")
return $(this).val().trim() == "" || !this.checked;
else
return this.value.trim() == "";
}).first().focus();
});
Скрипка: http://jsfiddle.net/7fwrd2rk/
Вам нужно filter()
из пустых / непроверенных входов и установите фокус на первый элемент в соответствующем наборе, как показано ниже.
$(function () {
$("input:enabled").filter(function () {
return this.type.match(/checkbox|radio/i) && //when it's a checkbox/radio
!this.checked || //get me a list of unselected ones
($.trim(this.value) === ""); // else get me a list of empty inputs
}).first().focus(); //grab the first from the list and set focus
});
Вот демо в том же духе.
Это включает в себя textarea и выберите.