ajax div 重新加载后 datepicker 不会启动

2024-03-28

我在 div 中有一个 jquery datepicker,通过 ajax 更新。我可以在整个页面重新加载后打开一次日期选择器,但是在ajax仅更新包含日期选择器输入的div后,我看不到日期选择器。我尝试过针对类似问题的解决方案,但没有成功。

我对 jquery 和 ajax 不太熟悉,所以也许有人可以立即看到问题。

我有一个包含 ajax 的 jquery 函数:

function example(){
$.ajax({
  url: "page.php",
  cache: false, 
  success: function(data){
    $('#div').html(data);
  }
});

}

Ajax 重新加载一个 div,里面有一个日期选择器输入, 看起来像这样:

<input type="text" id="datepicker"/>

日期选择器的构造方式如下:

$(function() {
    $("#datepicker").datepicker({dateFormat: "dd.mm.yy"});
    $.datepicker.setDefaults(
        $.extend(
            {'dateFormat':'yy-mm-dd'},
            $.datepicker.regional['fi']
        )
    );
});

我必须做什么,才能在每次通过ajax更新div时看到datepicker? 有些人建议 datepicker 在 ajax 成功时刷新,我没有以这种方式工作,或者不知道如何!


一种方法是重新运行.datepicker()ajax 成功时的初始化程序。

将日期选择器代码更改为:

function applyDatepicker(elem) {
    $(elem).datepicker({dateFormat: "dd.mm.yy"});
    //... Your datepicker code
}

然后一旦文档准备好:

$(document).ready(function(){
    applyDatepicker('#datepicker');
})

一旦你的ajax成功回调中:

$.ajax({
    //... other ajax params,
    success: function(){
        //... success callback code
        applyDatepicker('#datepicker');
    }
});

另外,如@肾上腺素 https://stackoverflow.com/a/17965668/476786建议,找出最佳实践的唯一方法是更多地了解您的代码。


一个建议是更改该元素以具有class="datepicker"而不是一个id主要原因是页面中可能有多个日期选择器,并且 id 始终是唯一的。作为初学者,我建议最简单的方法是尝试将 ID 想象为元素的专有名词,而类将是它的普通名词或形容词!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ajax div 重新加载后 datepicker 不会启动 的相关文章

随机推荐