Динамически добавляемое поле даты 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.