2013-03-27 83 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() 
}); 
相关问题