jQuery – 如何在初始化之后更改Datepicker设置

我想绑定到初始化的datepicker“onSelect”函数。

我一直在努力在网上找到解决方案,但没有成功。

谁能告诉我怎么做?

你可以简单地使用setter

 $('#datepicker').datepicker(); $('#datepicker').datepicker("option", "onSelect", function(){alert('hi')}); 

在这里摆弄http://jsfiddle.net/nhmsZ/

首先,尼古拉的回答是正确的,并帮助了我。 我找到了一些相关的post并没有真正解决我的问题。

我写这篇文章是为了扩展现有的答案。 如果您使用的框架限制了您控制JavaScript执行顺序的能力,例如Zend Framework,您可能需要延迟启动该绑定选项。

  $(document).ready(function() { function imahackfunction() { $('#startdate').datepicker('option', 'onSelect', function () { alert($('#startdate').val()); }); } setTimeout(imahackfunction, 2000); }); 

上面对我$(document).ready(function() {因为我有两个$(document).ready(function() { blocks,一个我在我的视图中打开,另一个“注入”由实例化datepicker的框架。

我想知道为什么datepicker不会简单地触发altField属性关联的输入上的change事件…

我发现上述解决方案在我的案例中引起了问题。 在datepicker初始化之后设置onSelect似乎会导致重新初始化datepicker。 这可能是不可取的。

如果您遇到问题,可能需要通过后门。 当JQUI更新时,这可能会出现兼容性问题,但如果您愿意处理,那么此代码可以帮助您…

 var inst = $.datepicker._getInst($('#startdate').get(0)); inst.settings.onSelect = function (dt) { // your code here };