jQuery日期选择器显示错误的语言,直到插入日历



在一个完全自定义的Wordpress页面中,使用Woody Snippets插件作为PHP代码段编写,我需要使用jQuery日期选择器来选择日期。

我正确地导入了必要的文件,还正确地调用和设置了日期选择器。昨天,我把日期选择器附加到了一个隐藏的输入字段,这样当我点击一个图标时,日历就会浮动在适当的位置,一切都很好,即使是本地化,尽管我没有采取任何措施来本地化日历(导入i18n文件等(。。。

今天,我不得不稍微更改页面的布局,所以我必须从头开始(内联(显示日历。根据演示页面,为了将日期选择器内联,您所要做的就是将其附加到div而不是输入字段。

日期选择器确实变成了一个内联元素,但本地化消失了。。。最初的语言是英语,直到我以任何方式与日历互动(来回一个月,或者选择一个日期,等等(。一旦我做到了,本地化就变成了我网站的语言!

更疯狂的是,即使在我专门导入并设置了本地化之后,这种情况仍然存在。

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js" integrity="sha512-894YE6QWD5I59HgZOGReFYm4dnWc1Qt5NtvYSaNcOP+u1T9qYdvdihz0PPSiiqn/+/3e7Jo4EaG7TubfWGUrMQ==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js" integrity="sha512-uto9mlQzrs59VwILcLiRYeLKPPbS/bT71da/OEBYEwcdNUk8jYIy+D176RYoop1Da+f9mvkYrmj5MCLZWEtQuA==" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/i18n/jquery-ui-i18n.min.js" integrity="sha512-zZ27MiE6yuwkKbHnJ/7ATQF/7l+Jwk5jSxgmLJ1SS5QJexaYswmP3OKBPDVMfM8TlSOudAKHTWH2UtS+0LDddw==" crossorigin="anonymous"></script>
<script>
$(document).ready(function() {
$('#frontpages-date-filter').datepicker($.extend({},
$.datepicker.regional['el'], {
dateFormat: 'yymmdd',
minDate: new Date({$min['y']}, {$min['m']}, {$min['d']}),
maxDate: new Date({$max['y']}, {$max['m']}, {$max['d']}),
onSelect: function(dateText) {
window.location.href = location.protocol + '//' + location.host + location.pathname + '?date=' + dateText;
}
}
));
});
</script>

在下面的JSFiddle 中,完全相同的代码从一开始就运行良好

从我目前搜索的内容来看,这很可能与WP v4.6+有关,其中本地化会自动添加到jQuery中,但无论我尝试了什么,我都无法在不与之交互的情况下使内联日期选择器加载本地化!

顺便说一句,我注意到了完全相同的行为,甚至为ACF的开发人员录制了一段短视频,认为这与他们的插件有关,但他们回应说这不是因为他们的插件,所以它在管理员端,我没有浪费时间进一步调试它。但这一次,这个页面是在公共端,所以它必须被修复!

任何帮助都将不胜感激。提前谢谢。

这一定是我的站点中的冲突。TBH,我没能发现冲突,但我能够通过在日期选择器启动之前设置必要的lang字符串来规避它,比如:

$(function() {
$.datepicker.regional['el'] = {
closeText: 'Κλείσιμο',
prevText: 'Προηγούμενος',
nextText: 'Επόμενος',
currentText: 'Σήμερα',
monthNames: ['Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάιος', 'Ιούνιος', 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος'],
monthNamesShort: ['Ιαν', 'Φεβ', 'Μαρ', 'Απρ', 'Μαι', 'Ιουν', 'Ιουλ', 'Αυγ', 'Σεπ', 'Οκτ', 'Νοε', 'Δεκ'],
dayNames: ['Κυριακή', 'Δευτέρα', 'Τρίτη', 'Τετάρτη', 'Πέμπτη', 'Παρασκευή', 'Σάββατο'],
dayNamesShort: ['Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', 'Σαβ'],
dayNamesMin: ['Κ', 'Δ', 'Τ', 'Τ', 'Π', 'Π', 'Σ'],
weekHeader: 'Εβδ',
dateFormat: 'dd/mm/yy',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''
};
$.datepicker.setDefaults($.datepicker.regional['el']);

$('#frontpages-date-filter').datepicker();
}); 

最新更新