我将datepicker附加到全局脚本文件中的输入,如下所示:
$(document).on("focusin",".datePick", function () {
$(this).datepicker({
dateFormat: "dd/mm/yy",
changeMonth: true,
changeYear: true,
onClose: function () { $(this).valid(); }
});
});
在特定页面上,在模式对话框(也是jquery ui)中有输入(将与datepicker一起使用),我通过$ .load()调用该页面并在其他页面中注入div。
上面的代码非常适用于其他页面中的静态输入,但对于上面的场景,它显示了datepicker对话框,但是当我点击日期时,它会抛出错误(f未定义)编辑:VS2010抛出“无法设置属性'currentDay'的值:object为null或undefined“
有人建议使用live()方法,但我不想使用弃用的方法..我该怎么办?
提前致谢
Ozgu
答案 0 :(得分:10)
我遇到了这个确切的错误,虽然我的答案对OP没有帮助,但未来也许会有所帮助。
当我与页面中的其他元素发生ID冲突时,我收到此错误消息。
答案 1 :(得分:4)
正如我在TJ VanToll的回答中所提到的那样,只要在加载DOM时你的触发器所绑定的父元素就会出现,你就可以了。
有关示例,请参阅this fiddle。
<强> JS:强>
$(function(){
$(document).on("focusin",".datePick", function () {
$(this).datepicker({
dateFormat: "dd/mm/yy",
changeMonth: true,
changeYear: true,
onClose: function () { $(this).valid(); }
});
});
$('#focusin').append('<input class="datePick" name="datepicker" />');
});
<强> HTML:强>
<div id="focusin"></div>
只要你的模态div在加载时出现,它应该能够在加载后捕获你的输入。
答案 2 :(得分:0)
使用live
,delegate
或on
不能与jQuery UI小部件一起使用,因为它们是有状态插件,必须在存在必要的DOM节点后进行实例化。
您可以通过在注入额外标记后实例化datepicker来完成您正在寻找的内容。这是一个例子 - http://jsfiddle.net/tj_vantoll/qN8dG/2/。