Благодаря JQuery выбора даты (с помощью $datePicker.calendarsPicker
) выпуска с MM/dd/yyyy
форматом
()datePicker.calendarsPicker проблемы с хромированной версией 56.0.2924.87
с хромированной версией 56.0.2924.87., Это не заселение даты. Я добавил формат "yyyy-MM-dd"
, который работает.
Теперь проблема, с которой я сталкиваюсь, заключается в том, что если я использую "yyyy-MM-dd"
на мой взгляд, то по какой-то причине сборщик дат подходит к августу 2022 года. Я не знаю, как и почему? В консоли я вижу ожидаемые результаты с минимальной и максимальной датой, но каким-то образом пользовательский интерфейс содержит разные данные.
Это что-то общее с $datePicker.calendarsPicker
или что-то еще? Здесь используется jQuery 1.8.7
.
Вид:
@Html.LabelFor(schedule => schedule.DateString, "Date", new { @for = "requested-fulfillment-date" })
@Html.TextBoxFor(schedule => schedule.DateString, new { id="requested-fulfillment-date", type = "date", @class = "date-picker", min = Model.MinOrderDate.ToString("yyyy-MM-dd"), max = Model.MaxOrderDate.ToString("yyyy-MM-dd"), @readonly="readonly" })
консоли Результат:
<label for="requested-fulfillment-date">Date</label>
<input class="date-picker hasCalendarsPicker" id="requested-fulfillment-date" max="2017-03-12" min="2017-02-10" name="ScheduleModel.DateString" readonly="readonly" type="text" value="2017-02-10">
UI Результат:
Я попытался следующие подходы, но они не работали:
Подход 1:
this.setDatePickerWidget = function(event, data) {
var $datePicker = $("#requested-fulfillment-date", data.element);
var min = $datePicker.attr("min");
var max = $datePicker.attr("max");
var date = $datePicker.val();
$datePicker.calendarsPicker({
showTrigger: '.trigger',
showAnim: 'fadeIn',
minDate: min,
maxDate: max,
defaultDate: date,
**dateFormat: 'yyyy-MM-dd',**
onSelect: function() {
$.publish('order_date_changed', { date: $("#requested-fulfillment-date").val() });
$("#checkout").prop('disabled', true);
}
}).prop('type', 'text');
};
-2 Подход:
this.setDatePickerWidget = function(event, data) {
var $datePicker = $("#requested-fulfillment-date", data.element);
var min = $datePicker.attr("min");
var max = $datePicker.attr("max");
var date = $datePicker.val();
$datePicker.calendarsPicker({
showTrigger: '.trigger',
showAnim: 'fadeIn',
minDate: min,
maxDate: max,
defaultDate: date,
onSelect: function() {
$.publish('order_date_changed', { date: $("#requested-fulfillment-date").datepicker({ dateFormat: 'yyyy-MM-dd'}).val() });
$("#checkout").prop('disabled', true);
}
}).prop('type', 'text');
};
Примечание: Если я изменю свой Просмотр следующий следующий сборщик даты начинает работать. Единственная проблема - когда я выбираю другую дату, она отображается как MM/dd/yyyy
, но через секунду или два она возвращается обратно к yyyy-MM-dd
.
@Html.TextBoxFor(schedule => schedule.DateString, new { id = "requested-fulfillment-date", type = "date", @class = "date-picker", min = Model.MinOrderDate.ToString("MM/dd/yyyy"), max = Model.MaxOrderDate.ToString("MM/dd/yyyy"), @readonly = "readonly" })
'вар $ Datepicker = $ ("# запрошенный_номер-исполнение-дата", data.element);' 'data.element' здесь не требуется, так как идентификатор должен быть уникальным для документа ... –
Я не мог найти ссылку на' calendarsPicker' на [сайте jQuery UI] (http://api.jqueryui.com /? s = calendarsPicker). Вы уверены, что не используете другую библиотеку виджетов? –
@MikeMcCaughan http://keith-wood.name/datepick.html, эта библиотека используется. Я добавил последнюю версию с этого сайта, но все еще сталкивался с той же проблемой. Позвольте мне посмотреть, в чем причина этого виджета, если я не найду ничего, что имеет смысл, я буду прямо использовать '$ datepicker'. – CSharper