2012-05-01 3 views
1

Я использую элемент управления формы в моем проекте перечислены hereJQuery найти глубоко вложенный элемент ввода

Когда я включаю его на своей странице он создает целый сильный удар динамического HTML для форматирования все хорошо. Тем не менее, я пытаюсь применить jQuery datepicker к нескольким входным элементам внутри формы, и я не знаю, как выбрать нужные мне входы.

Я вложил SuperForm прямо в div под названием «bookings», поэтому я знаю, что могу использовать это как отправную точку, но мне нужно пройти через всех потомков этого div, пока я не найду правильные входы, Я знаю, в каком порядке они появляются, поэтому я предполагаю, что могу использовать nth-child (x) здесь где-то, но до сих пор мне не повезло. Любая помощь будет принята с благодарностью!

РЕШЕННЫЙ! Вот мое решение:

$("#bookings :input[type='text']:eq(2)").datepicker({...}); 
+1

Можем ли мы привести пример созданного html? – peroija

+0

Почему вы не применяете класс или идентификатор к элементу ввода? –

+0

Элемент ввода динамически сгенерирован. Я не могу применить к нему идентификатор стороны клиента. –

ответ

1

РЕШЕННЫЙ!Вот мое решение:

$("#bookings :input[type='text']:eq(2)").datepicker({...}); 
0

Применить класс, атрибут или идентификатор к элементам, которые вы хотите, или проверить каждый элемент таким образом.

$('#bookings input').each(function() { 
    //Check here 

}); 
+0

Я знаю, что входы, которые мне нужно затронуть, это 2-й и 3-й внутри формы. Есть ли способ просто вернуть все входные элементы, вложенные в div «bookings», и выбрать второй и третий? –

+0

Почему бы вам не попробовать $ ('# bookings input: nth-child (2), # bookings input: nth-child (3)')? что даст все 3-й и 2-й входы, даже вложенные –

0

Для фильтрации входных элементов вам, очевидно, потребуется определенный идентификатор/селектор.

$('#bookings').find('.applyDatePicker').datepicker({...}); 
0

Используйте новые типы ввода, поддерживаемые в HTML5.

Новые типов входных сигналов:

  • цвета
  • Дата
  • DateTime
  • дата и время локального
  • электронная
  • месяц
  • номер
  • диапазон
  • поиск
  • тел
  • время
  • URL
  • неделю

Если установить те на сегодняшний день (или DateTime) вы можете выбрать все элементы с помощью:

$('input[type="date"]').each(function(index,element){ 
    $(element).datepicker... 
} 
+0

Это не полезно, как если бы вы заметили, что я упоминал, что входы динамически создавались с помощью элемента управления формы, который я использую ... Поэтому у меня нет контроля над тем, что тип типа ввода. Кроме того, проблема решается, как указано моим решением в исходном сообщении. –

0

Вы правы, когда с помощью простого выбора, но если ваш главный селектор сложно, вероятно, вы не можете использовать селектор входов внутри главного переключателя, так что лучше использовать

.find(" :input[type='text']") 

для пример в сортируемом сценарии, если главный селектор, как это:

$("#ulId").children('li:not(.ui-sortable-placeholder)') 

вы могли не получили какой-либо элемент, если вы кодирования, как показано ниже:

$("#ulId").children('li:not(.ui-sortable-placeholder) :input[type='text']') 

, но мы могли бы использовать это:

$("#ulId").children('li:not(.ui-sortable-placeholder)').find(" :input[type='text']") 

Надежда эта помощь.

 Смежные вопросы

  • Нет связанных вопросов^_^