升级后 jQuery setdate 出现问题
我有以下代码:
<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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你有错误的 jQuery“语法”,可能在新版本中他们不再原谅这样的事情。
在函数
loadDatepicker
中,您将一些代码嵌套在$(function() {}
块中 - 这是错误的。它应该是相反的意思
$( function() {}
块应该嵌套您想要运行的函数,因为您已经在$(document).ready
上下文中包含此代码,只需删除$(function 即可。 () {
一切都好:已更新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:Updated jsFiddle:
http://jsfiddle.net/MgWNv/5/