Динамически генерировать идентификаторы для полей Jquery? - PullRequest
0 голосов
/ 24 ноября 2011

Я пытаюсь интегрировать представление календаря в приложение на основе Python. Я почти закончил с этим. Теперь у меня есть только одна проблема создания идентификаторов для полей календаря. Например, если у меня есть одно поле календаря, то это поле отлично работает с приведенным ниже кодом, однако, если у меня есть 2 или более полей календаря в одной форме, как бы я генерировал идентификаторы для них. и есть ли необходимость написать отдельный скрипт для каждого поля. Вот мой пример кода, который я применяю для одного поля.

<script type="text/javascript"> 
        $(function() {
            $('#popupDatepicker').calendarsPicker({calendar: $.calendars.instance('islamic'), dateFormat: 'dd-mm-yyyy'});

        });
</script>

И код моего веб-приложения здесь: -

 <input type="text" **id="popupDatepicker"** name="${name}" autocomplete="OFF" size="3"
class="${css_class}" ${py.attrs(attrs, kind=kind, value=value)}/>

Теперь я хочу сгенерировать id динамически. Приведенный выше код называется только для моего типа календаря полей. так как мне сгенерировать <input Ids > и соответствующий скрипт здесь.

Ответы [ 2 ]

2 голосов
/ 24 ноября 2011

Вместо этого вы можете дать им класс для popupDatepicker, а затем изменить свой jQuery на использование .popupDatepicker вместо #popupDatepicker.

Поэтому замените ваш HTML следующим:

<input type="text" class="popupDatepicker" name="${name}" autocomplete="OFF" size="3" class="${css_class}" ${py.attrs(attrs, kind=kind, value=value)}/>

И ваш jQuery с этим кодом:

<script type="text/javascript"> 
    $(function() {
        $('.popupDatepicker').calendarsPicker({calendar: $.calendars.instance('islamic'), dateFormat: 'dd-mm-yyyy'});

    });
</script>
1 голос
/ 24 ноября 2011

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

 //get the element with popupDatepickerClass class and makeit a calendarsPicker()
 $('.popupDatepickerClass').calendarsPicker(SOME TXTS);

обратите внимание, как ваше «#» становится «.»

ваш элемент выглядит так:

 //add the popupDatepickerClass on every element you want to be converted as calendar
 class="${css_class} popupDatepickerClass" 

таким образом, ваш скрипт будет искать все элементы одного класса и превращать его в календарь.

 //create a css class with name: popupDatepickerClass and its not necessarily to have a value
 .popupDatepickerClass { }
...