我在 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(使用前将#替换为@)