Динамически добавляемое поле даты Coldfusion не запускает календарь

Я клонировал и добавлял поля даты, используя jquery к форме. Я делаю это, нажимая кнопку добавления, которая вызывает метод клонирования для клонирования предыдущей строки поля. Затем я переименовываю отдельные входы для клонированной строки. Мне разрешено использовать только поле дат Coldfusion, хотя я смог переименовать идентификаторы различных элементов, составляющих поле, он все равно не вызывает календарь. Я думаю, что следующим шагом будет ручное кодирование функциональности поля даты, но я не хочу идти по этому пути. Пожалуйста, помогите с лучшим решением и образцом кода, если это возможно, который не требует использования плагина jquery.

вот мой пример кода

$('img', $(newElement)).each(function () {                              
  var parentID = $(this).parent('div').attr('id','taskDueDate_'+TotalInputs+'newTasks_cf_buttondiv');
  var calendarDivID = parentID.siblings('div').attr('id','taskDueDate_'+TotalInputs+'newTasks_cf_container.yui-calcontainer.single.withtitle')
  var calendarTableID = calendarDivID.children('table').attr('id','taskDueDate_'+TotalInputs+'_cf_calendar'+parseInt(3+i))
  calendarTableID.find('td').each(function(){
    var calendarTableTdID = $(this).attr('id').replace('taskDueDate_1_cf_calendar3','taskDueDate_'+TotalInputs+'_cf_calendar'+parseInt(3+i));
    var newCalendarTableTdID = $(this).attr('id', calendarTableTdID)//alert(calendarTableTdID);
  });
  //console.log(calendarTableTdID);
  //var currCalendarTableTdID = calendarTableTdID.replace('taskDueDate_'+i,'taskDueDate_'+TotalInputs);
  $(this).attr('id','taskDueDate_'+TotalInputs+'newTasks_cf_button');
});`

1 ответ

Этот подход может работать. Напишите функцию ColdFusion, которая делает что-то вроде этого:

<cffunction name="something">
<cfargument name="idIn">
<cfsavecontent variable = "htmlToReturn">
code to generate the required html, including the
cfcalendar, using the incoming argument
</cfsavecontent>
<cfreturn htmlToReturn>

На вашей реальной странице, когда вы хотите добавить больше материала в форму, используйте javascript, чтобы вызвать ajax-вызов, который вызывает эту функцию, и заполните div возвращенным html.

Другие вопросы по тегам