选择日期时,jQuery UI Datepicker不会更改值

时间:2015-09-11 18:36:22

标签: javascript jquery asp.net jquery-ui datepicker

所有

我已经做了很多搜索,因为这似乎是一个非常常见的问题,并且已经在代码中移动了一些东西,似乎没有任何工作。

以下是我们的.aspx页面中的简单代码段。我们试图简单地从日期选择器中选择一个日期,然后实际将该日期显示在文本框中。麻烦的是,无论我们将该日期默认为(今天,任意日期,什么都没有,等等),我们都无法获得用户选择的日期出现在ClassificationStatusDate的此文本框中。 Datepicker似乎有效,但即使在开发人员工具中检查事物,也没有任何改变。

(此片段在其自己的标记中,与稍后发生的第二个块分开)

        <td class="editor-field">
            <div class="editor-field">
            <%: Html.TextBoxFor(model => model.ClassificationStatusDate, "{0:MM/dd/yyyy}")%>            
            <%: Html.ValidationMessageFor(model => model.ClassificationStatusDate) %>
            </div>
        </td>

稍后,我们将在其他地方使用相同的代码片段进行所有脚本渲染:

<asp:Content ID="Content4" ContentPlaceHolderID="ScriptsSection" runat="server">
    <%: Scripts.Render("~/bundles/jqueryval") %>
    <%: Scripts.Render("~/bundles/jqueryui") %>
    <%: Styles.Render("~/Content/themes/base/css") %>

    <script type="text/javascript">
            $(function () {
                $("input[id$='ClassificationStatusDate']").datepicker();
            });
    </script>
</asp:Content>

我尝试了几件事:

  • 将脚本移到其他所有内容
  • 将.datepicker()更改为$(&#39;#ClassificationStatusDate&#39;) ID。
  • 尝试不同的默认值
  • 其他几个随机赔率

这似乎是一个非常基本的问题,但也许我只是没有正确地绑定某些东西,或者沿着这些方向的东西。我听说有些人不得不等待DOM&#34;准备好了,但我认为这就是我已经做过的事情&#34; $(function(){&#34;。但是,也许还有别的东西因为这个而关闭是一个通过Razor构建其输入的应用程序。

1 个答案:

答案 0 :(得分:0)

我今天解决了这个问题。事实证明,我的页面中有一个HiddenFor更高的小错误。

<%: Html.HiddenFor(model => model.ClassificationStatusDate) %>

这导致为ID为&#34; ClassificationStatusDate&#34;的所有项初始化datepicker,但是当更改值时,它只会到达最顶层DOM中的元素。我删除了这一切,一切都很好。也许有人会从中吸取教训!