2013-03-27 86 views
1

我試圖根據單選按鈕的值設置jQuery datepicker設置minDate根據輸入設置jQuery datepicker minDate

當我嘗試編寫返回字符串的函數時,我的JavaScript不斷崩潰。任何想法,爲什麼這不工作?

$("#datepicker").datepicker({ 
    changeMonth: true, 
    changeYear: true, 
    yearRange: "-35:+0", 
    dateFormat: "yy-mm-dd", 
    minDate: function() { 
     var str = "-35Y"; 
     if($("#inputfield").val() == "value") { 
      str = "-33Y"; 
     } 
     return str; 
    } 
}); 
+0

*我的JavaScript總是崩潰*你得到什麼錯誤? – Rob 2013-03-27 10:05:55

+0

@Rob我得到:_TypeError:date.getTime不是函數_ – mattias 2013-03-27 10:12:53

回答

3

jsFiddle

這工作得很好....你需要確保你有inputfieldvalue

<input type='text' id='datepicker'></div> 
<input type='text' value='value' id='inputfield'> 

$("#datepicker").datepicker({ 
    changeMonth: true, 
    changeYear: true, 
    yearRange: "-35:+0", 
    dateFormat: "yy-mm-dd", 
    minDate:mdate() 
}); 


function mdate(){ 
     var str = "-35Y"; 
     if($("#inputfield").val() == "value"){ 
      str = "-33Y"; 
     } 
     return str; 
} 
  • 編輯:*

    $('#inputfield').on('change',function(){ $('#datepicker').datepicker('option', 'minDate', mdate()); });

+0

謝謝!沒有更多的錯誤!但是如果輸入改變,仍然不會改變_minDate_。 _yearRange_是否在破壞它? – mattias 2013-03-27 10:48:06

+0

你需要在輸入和回調中綁定change事件,像這樣$('#datepicker')。datepicker('option','minDate',mdate()); }); – 2013-03-27 10:54:27

+0

太棒了!那樣做了!謝謝! – mattias 2013-03-27 11:38:52

1

選項minDate需要一個,不是功能。只要選擇了單選按鈕,日期選擇器就不會自動更新minDate的值。

如果您希望datepicker的最小日期在單選按鈕選擇更改時發生更改,那麼您必須對此進行明確編程。大意如下的內容:

$('[name=myradiogroup]').change(function() { 
    var newMininumDate = /*insert logic here*/; 
    $('#datepicker').datepicker('option', 'minDate', newMininumDate); 
}); 

http://api.jqueryui.com/datepicker/#method-option

+0

沒錯!我忘了事件監聽者!謝謝! – mattias 2013-03-27 11:42:16

0

這個工作對我來說:

$("#datepicker").datepicker({ 
    changeMonth: true, 
    changeYear: true, 
    yearRange: "-35:+0", 
    dateFormat: "yy-mm-dd", 
    minDate: $("#inputfield").val() 
}); 
相關問題