jQuery datepicker - динамический селектор - PullRequest
0 голосов
/ 12 августа 2011

Я пытаюсь вызвать все поля ввода с идентификатором шаблона aaa * .bbb, где * - число от 1 до 100.

Мой код:

        $(document).ready(function(){
            $(PATTERN).datepicker({
                showOn: 'both'
            });
        });

Мои проблемы:

  1. Если идентификатор одного из полей ввода просто «aaa.bbb», и я использую PATTERN = "#aaa\\.bbb", тогда я могу открыть календарь, но при нажатии на дату в поле ввода не записывается дата. .. Однако, если я опущу точку в id и использую PATTERN = "#aaabbb", я могу выбрать дату по календарю. Отсюда я делаю вывод, что точка в идентификаторе не позволит мне выбрать дату по календарю. Как это могло быть ??

  2. Предположим, что я решил проблему с точкой из (1), я на самом деле хочу вызвать только соответствующие поля INPUT. (предположим, снова, что id одного из полей ввода просто "aaa.bbb"), поэтому я попробовал что-то вроде PATTERN = "input[id$='\\.bbb']" но это не сработало (кнопка календаря вообще не появлялась бы. Даже если здесь объяснено: http://api.jquery.com/category/selectors/, что для того, чтобы экранировать символ точки, я «должен экранировать символ с двумя обратными слешами: \\.» Однако, когда я пытаюсь PATTERN = "input[id$='\.bbb']", кнопка календаря появляется, но повторное нажатие на дату в календаре не приведет к записи даты в поле ввода. Где они говорят в документации, что мне нужно использовать только один \, чтобы избежать точки?

  3. Предположим, я решаю проблемы с точками из (1) и (2), как мне написать, что шаблон имеет форму aaa * .bbb ???

Спасибо!

1 Ответ

1 голос
/ 12 августа 2011

jQuery, к сожалению, не имеет селектора "regex".Что вы можете сделать, так это найти элементы, чьи атрибуты ID начинаются с «aaa» и заканчиваются на «.bbb», а затем анализируют каждый на предмет числа

$('[id^="aaa"][id$=".bbb"]').each(function() {
    var check = this.id.match(/aaa(\d+)\.bbb/);
    if (check != null && check[1] >= 1 && check[1] <= 100) {
        // ID matches required pattern
        $(this).datepicker({ showOn : 'both' });
    }
});

Демонстрация здесь - http://jsfiddle.net/zjcN7/1/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...