jQuery Datepicker: Предотвратите заключительное средство выбора при нажатии на дату

Я не заметил различия во время запуска между этими 2, но синхронизировал очень минимальное улучшение производительности приложения с "-сервер" (сервер Соляриса, все использование SunRays для выполнения приложения). Это находилось под 1.5.

19
задан Emil Stenström 9 August 2009 в 22:41
поделиться

2 ответа

Вам придется взломать датпикер самостоятельно. Это код, который он использует. Если он не встроен, он будет скрыт при выборе даты.

Вы можете передать свой собственный метод onSelect и быстро изменить экземпляр datePicker на встроенный, а затем вернуть его обратно, не меняя внутренности datepicker, но это очень хакерское решение.

if (inst.inline)
        this._updateDatepicker(inst);
else {
      this._hideDatepicker(null, this._get(inst, 'duration'));
      this._lastInput = inst.input[0];
      if (typeof(inst.input[0]) != 'object')
      inst.input[0].focus(); // restore focus
      this._lastInput = null;
}
8
ответ дан 30 November 2019 в 02:04
поделиться

Для справки, и поскольку люди спрашивали меня об этом по почте. Вот фрагмент кода, который необходимо добавить в timepicker.js:

/**
 * Don't hide the date picker when clicking a date
 */
$.datepicker._selectDateOverload = $.datepicker._selectDate;
$.datepicker._selectDate = function(id, dateStr) {
    var target = $(id);
    var inst = this._getInst(target[0]);
    inst.inline = true;
    $.datepicker._selectDateOverload(id, dateStr);
    inst.inline = false;
    this._updateDatepicker(inst);
}

Удачи, чтобы он заработал на вашем сайте!

28
ответ дан 30 November 2019 в 02:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: