小编典典

DatePicker在Ajax加载的页面中不起作用

ajax

我将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中。

上面的代码对于其他页面中的静态输入非常有效,但对于上面的scenerio,它显示的是datepicker对话框很好,但是当我单击一个日期时,它会抛出错误(f未定义)。编辑:VS2010抛出“无法设置属性’currentDay’:对象为null或未定义”

有人建议使用live()方法,但我不想使用不建议使用的方法。.该问题该怎么办?

提前致谢

奥兹古


阅读 402

收藏
2020-07-26

共1个答案

小编典典

正如我在TJ VanToll的答案评论中所提到的,只要在加载DOM时存在与触发器绑定的父元素,就可以了。

有关示例,请参见此小提琴

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出现在加载中,它就应该能够在加载后捕获您的输入。

2020-07-26