我有一个在我的控制器中创建表单的方法:
...
sbReturn.Append(String.Format("<p id='planSetupAddNewEffectiveDate'>"));
sbReturn.Append(String.Format("<label for='txtPlanSetupAddNewEffectiveDate'>Effective Date </label>"));
sbReturn.Append(String.Format("<input type='text' id='txtPlanSetupAddNewEffectiveDate' class='plansetupdate' />"));
sbReturn.Append(String.Format("</p>"));
...
有没有办法将日期选择器附加到该文本字段?
我尝试过标准
$(".plansetupdate").datepicker();
和
$("#txtPlanSetupAddNewEffectiveDate").datepicker();
但实际上都没有生成日期选择器。我知道当从错误添加的控件(即按钮)中捕获事件时,会使用.live(即.xxx.live('click',function()...),这种情况是否类似?
答案 0 :(得分:5)
你可以使用.liveQuery()
plugin for this,.live()
没有完全替换它,你的案例是一个很好的例子,你这样做是为了得到你的结果'之后:
$(".plansetupdate").liveQuery(function() {
$(this).datepicker();
});
原因:它目前无效的原因是因为当你执行$(".plansetupdate").datepicker();
时它正在做的是:
planetsupdate
但是...你的元素在运行时无法找到,之后又添加了。 .liveQuery()
继续看。另外,如果您通过$.ajax()
加载此内容,您可以在成功或完整处理程序中加以处理,如下所示:
$.ajax({
//Stuff
success: function(data) {
$(".plansetupdate", data).datepicker();
}
});
这将查看您的.planetsupdate
元素的返回数据,以便添加新的日期选择器。
答案 1 :(得分:0)
它应该有用!
您是通过ajax还是在正常请求期间获取此信息。 您确定您的js代码已正确执行(在输入是在厄运后创建的)。