扩展到添加占位符后,jQuery-ui datepicker无法正常工作

时间:2017-06-02 07:47:17

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

我想使用dateFormat属性作为占位符。我已经扩展了jQuery函数,但是在下面的小提琴中扩展demo之后无法使它工作。我错过了什么?

https://jsfiddle.net/yzk1avan/1/

$(document).ready(function () {
    $(".datePicker").datepicker({
        dateFormat: 'dd/mm/yy',
        placeholder: true
    });
});

(function ($) {
    $.fn.datepicker = function (options) {
        var settings = $.extend({}, $.fn.datepicker, options);
        return this.each(function () {
            if (settings.placeholder === true) {
                var dateFormat = settings.dateFormat;
                var placeholder = dateFormat.replace(/y/gi, 'yy');
                $(this).attr('placeholder', placeholder);
            }
        });
    }
}(jQuery));

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

在这里工作小提琴 https://jsfiddle.net/yzk1avan/3/

从这里找到我的答案:How can I extend jQueryUI datepicker to accept an additional argument?

缺少这些代码:

var __picker = $ .fn.datepicker;

__ picker.apply(this,[options]);

这是工作代码:

var __picker = $.fn.datepicker;

(function($) {
$.fn.datepicker = function(options) {

     __picker.apply(this, [options]);

    var settings = $.extend({}, options);
    return this.each(function() {
    if (settings.placeholder === true) {
        var dateFormat = settings.dateFormat;
        var placeholder = dateFormat.replace(/y/gi, 'yy');
        $(this).attr('placeholder', placeholder);
    }
    });
}
}(jQuery));

$(document).ready(function() {
    $(".datePicker").datepicker({
        dateFormat: 'dd/mm/yy',
        placeholder: true
    });
});