2017-02-10 67 views
1

由於jQuery的日期選擇器(使用$datePicker.calendarsPicker)與MM/dd/yyyy格式
enter image description heredatePicker.calendarsPicker問題與Chrome版本56.0.2924.87

與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

UI結果:

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" }) 
+0

'變量$日期選擇= $( 「#請求履行日期」,data.element);'的'data.element'在這裏不需要,因爲一個id必須是文檔唯一的... –

+0

我在[jQuery UI網站](http://api.jqueryui.com)上找不到對'calendarsPicker'的任何引用/?S = calendarsPicker)。你確定你沒有使用其他的部件庫嗎? –

+0

@MikeMcCaughan http://keith-wood.name/datepick.html,使用這個庫。我從這個網站添加了最新版本,但仍遇到同樣的問題。讓我看看這個小部件的原因是什麼,如果我沒有找到任何有意義的東西,我會直接使用'$ datepicker'。 – CSharper

回答

0

我也有類似的問題就解決了這種方式(希望它幫助的):

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

這種方法帶有不同的日曆本身,我不想。 – CSharper

+0

好的,但你可以在datepicker()函數內發送你的選項。但是,讓我們嘗試這種方式:嘗試在datepicker()調用後設置新的Date()。 –