2009-10-29 144 views
12

我想獲取日期選擇器的屬性動態拉動日期,但是當我嘗試將其設置爲變量時,我得到未捕獲的異常錯誤。jquery datepicker的默認日期

錯誤只出現在沒有日曆的頁面上(內聯)。 如何從選擇器獲取rel標籤而不會出現此錯誤?

//Event Calendar Home Page and Listing 
function calendar_picker() { 
$("#calendar-inline").datepicker({ 
    //defaultDate: $(this).attr('rel'), 
    dateformat: 'yy-mm-dd', 
    maxDate: '+1y', 
    minDate:'-0d', 
    hideIfNoPrevNext: true, 
    showButtonPanel: false, 
    navigationAsDateFormat: false, 
    onSelect: function(dateText, inst) { 
       var d = new Date(dateText); 
    var fmt1 = $.datepicker.formatDate("yy-mm-dd", d); 
    $.ajax({ 
    type: "POST", 
    url: "/events/listing/all/20/", 
    dataType: "html", 
         date: "event_date="+fmt1, 
    success: function(){ 
         window.location.href= "/events/browse/"+fmt1; 
    }});}}); 
} 

UPDATE 正確,註釋行就是我有問題有, 什麼是從這個裏面拉離#日曆內聯rel屬性的正確方法。 所有試圖拋出一個未捕獲的錯誤JS

更新2

function calendar_picker() { 
var myDate = new Date($("#calendar-inline").attr('rel')); 
    $("#calendar-inline").datepicker({ 

    dateformat: 'yy-mm-dd', 
    defaultDate:myDate, 

解決方案:

function calendar_picker() { 
var myDate = null; 
if ($("#calendar-inline").attr('rel') != null) { 
    myDate = $.datepicker.parseDate("yy-mm-dd", $("#calendar-inline").attr('rel')); 
    } 
    $("#calendar-inline").datepicker({ 

    dateformat: 'yy-mm-dd', 
    defaultDate:myDate, 

回答

9

試試這個:

defaultDate: $("#calendar-inline").attr('rel') 

這將嘗試從「相對」屬性拉日期,如果不存在就應該返回null。當null傳入datepicker默認日期時,它將使用今天作爲默認日期。

+0

這不起作用,日期必須是pa rsed並不是。我試着手動把一個日期放在一個字符串中,並提前1年。 – matthewb 2009-11-20 02:01:25

+0

rel屬性中的日期格式是什麼?你應該可以創建一個像這樣的變量: var myDate = new Date($(「#calendar-inline」)。attr('rel')); 如果你將該變量傳遞給defaultDate,它應該工作......如果沒有,你可以發佈一些html嗎? – 2009-11-20 02:32:52

+0

當我通過你所建議的新js代碼的時候,rel數據是「2009-11-19」,現在它只是默認爲今天,不管rel中的內容如何。 – matthewb 2009-11-20 02:36:38

0

你的問題有點不清楚 - 什麼我假設是你問題出現在註釋掉的線上。

如果這是正確的,那麼我認爲你的問題是與「這個」。我不太確定你期待的「this」是什麼,但是在函數內部它將成爲窗口對象。

如果我完全錯誤的軌道上請更新問題與一些更多的信息。

0

這個工作對我來說:

var nowDate = new Date(year, month, day, hours, minutes, seconds, milliseconds); 

然後在日期選擇器,您可以設置:

defaultDate: nowDate; 
8

我們可以通過此設置默認日期:

<script type="text/javascript"> 
$(function() {    
    $("#date").datepicker({ 
     changeMonth: true, 
     changeYear: true, 
     yearRange: '1920:2010', 
     dateFormat : 'dd-mm-yy', 
     defaultDate: new Date(2000,01,01) 
    }); 
}); 
</script> 

http://jqueryui.com/demos/datepicker/#option-defaultDate

+0

'(2000,01,01)'應該是'(2000,1,1)' – zsitro 2014-11-24 07:17:44

相關問題