Liferay.AutoFields и DatePicker в Liferay - PullRequest
3 голосов
/ 13 июня 2011

У меня есть требование дублировать набор полей ввода по нажатию кнопки; столько раз, сколько требуется.

Эта функция такая же, как у нас в LIferay:

Перейдите в «Панель управления -> Пользователь», нажмите на любого пользователя.

На правой стороне страницы, под Идентификацией; нажмите «Адреса, номера телефонов».

Нажатие на символ ПЛЮС (кнопка Добавить) дублирует набор полей ввода.

Вот код, который я сделал для моего требования.

Код для поля ввода:

<input class="date-pick" readonly="readonly" id="<portlet:namespace/>fromDate1"   type="text" onchange="showDate()"

     name="<portlet:namespace/>fromDate1" value="" />" >

JavaScript для использования значения даты:

function showDate()
  {
   alert(document.getElementById("<portlet:namespace/>fromDate1"));
  }

Функция jQuery для привязки указателя даты с вышеприведенным текстовым полем:

jQuery(function(){
  jQuery('.date-pick').datepicker({autoFocusNextInput: true});
});

Функция Liferay.Autofields для создания дублирующейся строки полей формы:

jQuery(
  function () {
        new Liferay.AutoFields(
                    {
                          container: '#<portlet:namespace />webFields',
                          baseRows: '#<portlet:namespace />webFields > .lfr-form-row',
                          fieldIndexes: '<portlet:namespace />formFieldsIndexes',
                          onAdd: function(newField) {
                                      alert('This field got added.');
                                      jQuery('.date-pick').datepicker({autoFocusNextInput: true});
                                },

                          onRemove: function() {
                                      alert('The last field was removed.');
                                }
                    }
        );
  }

);

Для исходного набора полей ввода указатель даты работает правильно; но для набора полей ввода, сгенерированных после нажатия на символ ПЛЮС (кнопка Добавить), средство выбора даты не работает.

Кроме того, поскольку имя полей ввода изменяется динамически, поэтому я сталкиваюсь с проблемой использования значений полей ввода (см. Функцию JavaScript showDate ()).

Кто-нибудь работал над этим или есть идеи; тогда помогите пожалуйста

Ответы [ 2 ]

1 голос
/ 15 июня 2011
0 голосов
/ 14 июня 2011

Похоже, что плагин AutoFields не совместим с плагином DatePicker.Проблема заключается в том, что события JavaScript, ответственные за виджет DatePicker, не копируются правильно на реплицированные поля.

Я полагаю, вы могли бы исправить это в событии "onAdd", но я не знаю, каквы бы реализовали этот кусок.

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