2011-05-16 36 views
1

後,我有以下代碼:問題與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); 
    } 
} 

此代碼工作正常,當前的日期「2011年12月5日」將在日期選擇器設置。但升級到最新版本的jQuery後,它不再工作。只有當我從

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

它的工作原理。

我用jsFiddle進行了測試。使用jQuery 1.4.4它工作正常;與jQuery 1.5.2它不設置當前值。

希望有人能幫忙,提前致謝。

埃德溫

回答

1

你錯了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/

+0

解決了,非常感謝你! – emeijer 2011-05-16 07:38:32

+0

@eme歡呼和歡迎來到堆棧溢出,如果我的答案解決了你的問題,請將它標記爲Accepted,點擊左側的V圖標 - 這樣人們就會知道這個問題已經解決了。 – 2011-05-16 07:45:17