动态添加Coldfusion Datefield不会触发日历

时间:2015-03-12 15:19:16

标签: javascript jquery html coldfusion datefield

我已经克隆并使用jquery将日期字段添加到表单中。我通过单击一个调用clone方法克隆前一个字段行的add按钮来完成此操作。然后,我重命名克隆行的各个输入。 我只允许使用coldfusion datefield,即使我已经能够重命名组成该字段的不同元素的id,它仍然不会触发日历。我认为下一步将是我手动编写日期字段的功能,但我不想走这条路。如果可能的话,请帮助我们使用更好的解决方案和代码示例,不要让我使用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 个答案:

答案 0 :(得分:0)

这种方法可行。编写一个类似这样的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调用,并使用返回的html填充div。