JQuery: выберите вход первого ввода внутри формы, но не когда тип: скрыт?
У меня есть переменная, которая содержит разные формы-объекты вроде этого... $(formId)
Каждая форма различна, поскольку либо имеет скрытое поле ввода в качестве первого элемента, либо первый - это нормальный ввод (тип = "текст" или что-то еще)
как я могу ВСЕГДА выбрать первое "нормальное" поле ввода
$(formId).find("input:first-child:not[type='hidden']")
Я думал, что это должно быть что-то вроде этого. Поэтому, если вы задаетесь вопросом, для чего мне это нужно, я хочу установить фокус на первое поле ввода в форме, но если первый ввод является скрытым, я, конечно, хочу установить его на следующий "видимый" вход.
Ответы
Ответ 1
Селектор :first-child
выбирает элемент, который является первым дочерним, не первым элементом в коллекция jQuery.
Чтобы выбрать первый элемент коллекции, используйте селектор jQuery :first
.
Ваша реализация :not
также неверна.
:not[type='hidden']
равно :not()[type='hidden']
равно [type='hidden']
- напротив того, что вы хотите.
<ч/" > Это правильные селекторы (они эквивалентны):
input:not([type=hidden]):first
input[type!=hidden]:first
Ответ 2
$(formId).find ('input:visible:first').focus();
Ответ 3
Будет ли использование скрытого селектора работать в вашем случае?
$(formId).find("input:first-child:not(:hidden)")
(Не так уверен, что я получаю то, что выглядит ваша разметка...)