chrome Version 56.0.2924.87

时间:2017-02-10 19:06:06

标签: jquery jquery-ui datepicker

由于jQuery日期选择器(使用$datePicker.calendarsPickerMM/dd/yyyy格式的问题 (enter image description here

使用Chrome版本56.0.2924.87。,它没有填充日期。我添加了"yyyy-MM-dd"格式正在运行。

现在我遇到的问题是,如果我在我的视图中使用"yyyy-MM-dd",那么由于某种原因,日期选择器将随着2022年8月的记录而出现。我不知道如何以及为什么?在控制台中,我看到了最小和最大日期的预期结果,但不知何故,UI提供了不同的数据。

这与$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">

enter image description here

用户界面结果:

enter image description here

我尝试了以下方法,但他们没有工作:

方法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" })

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题(希望有所帮助):

$('.datapicker').datepicker().datepicker("setDate", new Date());