【问题标题】:jQuery - how to alter Datepicker settings after it has been initializedjQuery - 初始化后如何更改 Datepicker 设置
【发布时间】:2012-03-21 14:34:58
【问题描述】:

我想绑定到已初始化的 datepicker "onSelect" 函数。

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

谁能告诉我怎么做?

【问题讨论】:

  • 有什么理由不能重新初始化并绑定到onselect 事件? jqueryui.com/demos/datepicker/#event-onSelect 。还是一开始就绑定它?
  • 重新初始化是什么意思?我已经尝试在同一个元素上再次触发 datepicker 方法,但没有运气$('#OfferStartDate').datepicker({ onSelect: function (dateText, inst) { console.debug("Validation"); } }); “没有运气”我的意思是控制台上没有显示任何内容。
  • 那么您的代码还有其他问题。您发布的内容很好。 jsfiddle.net/6pCMR 。关于我之前的评论,听起来您正在尝试修改现有的日期选择器,而不是创建新的 - bind to initialized "onSelect" function
  • 我的代码实际上可能还有其他问题。现在我不知道是什么,但下面的解决方案(接受的解决方案 - 以防其他人出现)效果很好。

标签: jquery jquery-ui datepicker


【解决方案1】:

你可以简单地使用setter

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

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

【讨论】:

  • Protip - 在发布 jQuery UI fiddles 时,我将这个主题作为资源包含在内,让一切看起来都很好。它是aristo theme demo 的热门歌曲 - jsfiddle.net/6pCMR
  • 你是什么人 by .datepicker();你能解释一下吗
【解决方案2】:

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

如果您遇到问题,可能需要走后门。这可能会在 JQUI 更新时出现兼容性问题,但如果您愿意处理这个问题,那么这段代码可以帮助您...

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

【讨论】:

    【解决方案3】:

    首先,Nicola 的回答是正确的并帮助了我。我发现一些相关的帖子并没有真正解决我的问题。

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

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

    上述方法对我有用,因为我有两个 $(document).ready(function() { 块,一个在我的视图中打开,另一个由实例化日期选择器的框架“注入”。

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

    【讨论】:

      猜你喜欢
      • 2012-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-08
      • 2011-05-04
      • 1970-01-01
      相关资源
      最近更新 更多