(function ($) { var kendo = window.kendo, ui = kendo.ui, Widget = ui.Widget, proxy = $.proxy, CHANGE = 'change', PROGRESS = 'progress', ERROR = 'error', NS = '.generalInfo'; var MaskedDatePicker = Widget.extend({ init: function (element, options) { var that = this; Widget.fn.init.call(this, element, options); var mask = '0000. 00. 00.'; var format = 'yyyy. MM. dd.'; var parseFormats = 'yyyy. MM. dd.'; var minDate = '1900. 01. 01.'; var maxDate = '2100. 01. 01.'; if (typeof options !== 'undefined') { $.each(options, function (index, value) { if (index == 'dateOptions.mask') { mask = value; } if (index == 'dateOptions.format') { format = value; } if (index == 'dateOptions.parseFormats') { parseFormats = value; } }); } var datePickerOptions = {}; //ha már van rajta datePicker (MVC-s helper miatt), akkor azt levesszük, de a beállításait megtartjuk var datePicker = $(element).data('kendoDatePicker'); if (typeof datePicker !== 'undefined') { datePickerOptions = datePicker.options; datePicker.destroy(); } datePickerOptions.format = format; datePickerOptions.parseFormats = parseFormats; datePickerOptions.minDate = minDate; datePickerOptions.maxDate = maxDate; $(element) .kendoMaskedTextBox({ mask: mask, culture: 'en-US' }) .kendoDatePicker(datePickerOptions) .closest('.k-datepicker') .add(element) .removeClass('k-textbox'); that.element.data('kendoDatePicker').bind('change', function () { that.trigger(CHANGE); }); }, options: { name: 'MaskedDatePicker', dateOptions: {} }, events: [CHANGE], destroy: function () { var that = this; Widget.fn.destroy.call(that); kendo.destroy(that.element); }, value: function (value) { var datepicker = this.element.data('kendoDatePicker'); if (CommonUtils.isNullOrUndefined(value)) { return datepicker.value(); } datepicker.value(value); } }); ui.plugin(MaskedDatePicker); })(window.kendo.jQuery);