2015-09-11 2 views
0

Все,JQuery UI Datepicker не изменяет значение при выборе даты

Я сделал хороший бит поиска, как это кажется очень общим вопросом и переехал вещи вокруг в коде справедливый бит уже, и ничего похоже, работает.

Ниже приведен простой фрагмент из страницы .aspx, которую мы имеем. Мы пытаемся достаточно просто выбрать дату из datepicker, а затем на самом деле эта дата появится в текстовом поле. Проблема заключается в том, что независимо от того, на какую мы по умолчанию эту дату (сегодня, произвольная дата, ничего вообще и т. Д.), Мы не можем получить дату, которая выбрала пользователем, чтобы появиться в этом текстовом поле для нашего 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() на $ ('# ClassificationStatusDate') ID.
  • пробуя различные значения
  • Несколько другие случайные коэффициенты по умолчанию и заканчивается

Это кажется действительно фундаментальная проблема, но может быть, я просто не правильно связывании что-то, или что-то вдоль этих линий. Я слышал о том, что некоторые люди должны «ждать DOM», чтобы быть готовыми, но я думал, что это то, что я делаю уже с «$ (function() {». Но, возможно, есть что-то еще из-за того, что это приложение, где его входы строятся с помощью Razor.

+0

Javascript/Jquery взаимодействуют с визуализированным HTML на DOM, поэтому лучше разместить выделенный HTML-код. Вызов функции, так как вы здесь, будет ожидать рендеринга DOM, но если есть еще ajax-вызовы, которые загружают данные, которые могут зависеть от вашего приложения, и это поле, вы должны подумать, может ли понадобиться ваша привязка в некотором обратном вызове , – Ecropolis

ответ

0

Я решил это сегодня. Оказывается, у меня был HiddenFor повыше в моей странице, как небольшая ошибка.

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

Это вызвало DatePicker для инициализации для всех элементов с идентификатором «ClassificationStatusDate», но когда дело дошло до , изменив значение, это будет сделано только для самого верхнего элемента в DOM. Я удалил это, и все было хорошо. Возможно, кто-то узнает об этом !

Смежные вопросы