【问题标题】:jquery-ui datepicker onchangejquery-ui datepicker onchange
【发布时间】:2015-01-19 20:43:46
【问题描述】:

我想在客户端更正所有日期选择器的值。

$.datepicker.setDefaults({
    dateFormat: "dd.mm.yy",
    onClose: function(date) {
        // calculate proper date string
        $(this).val(properDate);
        $(this).trigger('blur');
    }
});

但如果我在浏览器中切换标签,它就不起作用。更改事件生成,但未调用 onClose 方法。

我可以使用 dom 选择器手动订阅更改事件:

$(".datepicker").change(function() {...});

但我不喜欢它,因为我动态添加了元素。我想在 datepicker 的构造函数中添加更改事件处理程序。

你有什么建议?

【问题讨论】:

  • 你想完成什么?
  • @MathiasBecher,如果用户从键盘输入日期,他可能会错误地输入日期。我不想在客户端检查它。
  • 您可以使用正则表达式添加验证,例如/^([0-9]{2})(\.[0-9]{2})(\.[0-9]{4})$/
  • @JuanSedano,问题不是“如何查看日期”。问题是“如何绑定函数来更改所有日期选择器的事件”。而且您的正则表达式不正确:99.99.2015.
  • 我在 cmets 中看到“如果用户从键盘输入日期,他可能会错误地输入日期。我不想在客户端检查它”,正则表达式只是您可以验证它的一个示例使用正则表达式,我知道是否不完整...

标签: jquery jquery-ui datepicker jquery-ui-datepicker


【解决方案1】:

我的解决方案在这里:http://jsfiddle.net/psoubh9k/1/

我实现了 datechooser,它将更改事件绑定到我的函数并将 datepicker 应用于元素。

var methods = {
    init : function(options) {
        $(this).change(validate);
        options = $.extend(true, options, {
            onClose: validate,
            dateFormat: "dd.mm.yy"
        });
        return $(this).datepicker(options);
    }
};

【讨论】:

    猜你喜欢
    • 2011-09-22
    • 2010-10-18
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    相关资源
    最近更新 更多