升级后 jQuery setdate 出现问题

发布于 2024-11-07 14:28:19 字数 1088 浏览 0 评论 0原文

我有以下代码:

<input id="aanschafdatum" type="text" name="aanschafdatum" size="40" value="" />
<input id="sel_aanschafdatum" type="hidden" value="12-05-2011" />

$(document).ready(function() {
    var selected_date = document.getElementById("sel_aanschafdatum").value;
    loadDatepicker('#aanschafdatum', selected_date );
});

 function loadDatepicker(id, selected_date) {
     if (selected_date === undefined) {
         selected_date = "";
     }
     $(function() {
         $(id).datepicker();
     });
     if (selected_date !== '') {
         $(id).datepicker("setDate", selected_date);
     }
 }

此代码工作正常,当前日期“12-05-2011”将在日期选择器中设置。但是升级到最新版本的 jQuery 后它就不再工作了。仅当我从以下位置删除 document.ready 时:

var selected_date = document.getElementById("sel_aanschafdatum").value;
loadDatepicker('#aanschafdatum', selected_date );

它才起作用。

我已经用 jsFiddle 对其进行了测试。使用 jQuery 1.4.4 可以正常工作;对于 jQuery 1.5.2,它不会设置当前值。

希望有人能帮忙,先谢谢了。

埃德温

I have the following code:

<input id="aanschafdatum" type="text" name="aanschafdatum" size="40" value="" />
<input id="sel_aanschafdatum" type="hidden" value="12-05-2011" />

$(document).ready(function() {
    var selected_date = document.getElementById("sel_aanschafdatum").value;
    loadDatepicker('#aanschafdatum', selected_date );
});

 function loadDatepicker(id, selected_date) {
     if (selected_date === undefined) {
         selected_date = "";
     }
     $(function() {
         $(id).datepicker();
     });
     if (selected_date !== '') {
         $(id).datepicker("setDate", selected_date);
     }
 }

This code works fine, the current date "12-05-2011" will be set in the datepicker. But after upgrading to the latest version of jQuery it does not work anymore. Only if I remove the document.ready from:

var selected_date = document.getElementById("sel_aanschafdatum").value;
loadDatepicker('#aanschafdatum', selected_date );

it works.

I have tested it with jsFiddle. With jQuery 1.4.4 it works fine; with jQuery 1.5.2 it does not set the current value.

Hope someone can help, thanks in advance.

Edwin

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

魄砕の薆 2024-11-14 14:28:19

你有错误的 jQuery“语法”,可能在新版本中他们不再原谅这样的事情。

在函数 loadDatepicker 中,您将一些代码嵌套在 $(function() {} 块中 - 这是错误的。

它应该是相反的意思 $( function() {} 块应该嵌套您想要运行的函数,因为您已经在 $(document).ready 上下文中包含此代码,只需删除 $(function 即可。 () { 一切都好:

function loadDatepicker(id, selected_date) {
     if (selected_date === undefined) {
         selected_date = "";
     }

     $(id).datepicker();

     if (selected_date !== '') {
         $(id).datepicker("setDate", selected_date);
     }
 }

已更新jsFiddle:
http://jsfiddle.net/MgWNv/5/

You have wrong jQuery "syntax", probably in the newer versions they don't forgive such thing anymore.

Inside the function loadDatepicker you nest some code inside $(function() {} block - this is wrong.

It should be the other way around meaning the $(function() {} block should nest functions you want to run. As you already have this code in the context of $(document).ready just remove the $(function() { and you're all good:

function loadDatepicker(id, selected_date) {
     if (selected_date === undefined) {
         selected_date = "";
     }

     $(id).datepicker();

     if (selected_date !== '') {
         $(id).datepicker("setDate", selected_date);
     }
 }

Updated jsFiddle:
http://jsfiddle.net/MgWNv/5/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文