JQuery DatePicker只显示一个日期

时间:2016-01-14 12:42:30

标签: javascript jquery knockout.js datepicker disabled-control

我在表单上有一个使用Knockout JS构建的日期选择器。 它一直工作到最近,但现在不是。

当您点击图标打开日期选择器时,它只显示一个月:2021年6月,并且甚至不让您离开那个月。对于表单上的所有日期字段都是如此。

这是一个屏幕截图:Screen shot of error

这种情况发生在Google Chrome和Firefox中,每个版本都有最新版本。 在Firefox中使用Firebug,我可以看到页面上没有JavaScript错误。

这里是Firebug中显示的两个表格行的HTML,其中一个是“开始日期”和“开始日期”。和一个开始的条目打开':

<tr>
    <th>Start Date</th>
    <td data-bind="text: niceDate(StartDate())">05-03-2016 00:00:00</td>
    <th>Finish Date</th>
    <td data-bind="text: niceDate(FinishDate())">06-03-2016 00:00:00</td>
</tr>

<tr class="entries-open">
    <th>
        <label>Entries Open</label>
    </th>
    <td>
        <input id="dp1452774306035" maxlength="9" size="10" name="ko_unique_20" class="jq-date hasDatepicker" data-bind="value: niceDate(EntriesOpen()), uniqueName: true" data-field="EntriesOpen" type="text">
    <img title="..." alt="..." src="/asp-net/protected/events/admin/calendar_icon.gif" class="ui-datepicker-trigger"></td>
    <th>
        <label>Late Entry Surcharge Date</label>
    </th>
    <td>
        <input id="dp1452774306036" maxlength="9" size="10" name="ko_unique_21" class="jq-date hasDatepicker" data-bind="value: niceDate(EntriesClose()), uniqueName: true" data-field="EntriesClose" type="text">
    <img title="..." alt="..." src="/asp-net/protected/events/admin/calendar_icon.gif" class="ui-datepicker-trigger"></td>
</tr>

Knockout JS的JSON日期如下:

"StartDate": "2016-03-18T00:00:00",
"FinishDate": "2016-03-20T00:00:00",
"BallotDate": "2016-02-26T00:00:00",
"EntriesOpen": "2016-02-12T00:00:00",
"EntriesClose": "2016-03-08T00:00:00",

[编辑]

  1. 为了确认,这是jQuery UI日期选择器。我在用 版本1.8.9但我已经尝试升级到jQuery UI 1.11.4但是 这还没有解决。我使用的是jQuery 1.6.1。这不是最新版本,但在网站上使用时需要更新更新工作。

  2. 我尝试过不同的日期格式 - 以及原始格式 &#34; DD-MM-YYYY HH:mm:ss&#34;,我也尝试过:

    • &#34; DD-MM-YYYY&#34;
    • &#34; DD / MM / YYYY&#34;
    • &#34; DD / MM / YYYY HH:mm:ss&#34;
    • 重复美式&#34; MM-DD-YYYY&#34;日期
    • 原始JSON日期格式:2016-03-05T00:00:00

    这些都没有任何影响

  3. 日期选择器中的所有元素在显示时都具有“ui-state-disabled&#39;类,这可以解释为什么它不会对鼠标点击做出反应来改变日期,而不是为什么它首先被禁用

  4. [编辑2] 虽然它至少在12个月内没有变化,但似乎data-field="EntriesOpen"部分归咎于此。删除此标记会导致现有日期正确显示,并且日期选择器可以正常工作。

    当然,有一个问题。 Knockout使用data-field属性来跟踪哪些字段已更改。没有这个属性,当我点击按钮保存更改时,它告诉我没有更改表单,如果我所做的只是更改日期。

    感谢您的帮助!

0 个答案:

没有答案