JQuery UI datepicker в Asp.Net MVC
Я попытался использовать некоторые из виджетов в JQuery UI
на Asp.Net MVC
сайте без везения.
Например, базовый параметр datepicker из jQuery UI - функциональные демонстрации.
Я создал простой проект MVC и добавил ссылки script в Site.Master
следующим образом:
<script src="../../Scripts/jquery-1.2.6.min.js" type="text/javascript"></script>
<script src="../../Scripts/jquery-ui-personalized-1.5.3.min.js" type="text/javascript"></script>
<link href="../../Content/Site.css" rel="stylesheet" type="text/css" />
<link href="../../Content/ui.datepicker.css" rel="stylesheet" type="text/css" />"
В файле Index.aspx
я очистил все содержимое по умолчанию и добавил следующее:
<script type="text/javascript">
$("#basics").datepicker();
</script>
<input type="text" size="10" value="click here" id="basics"/>
Ядро jQuery отлично работает. Любые подсказки?
Ответы
Ответ 1
Убедитесь, что ваш инициализатор вызывается после загрузки DOM:
$(document).ready(function() {
$("#basics").datepicker();
});
событие jQuery ready:
Используя этот метод, ваш функция будет называться мгновенным DOM готов к чтению и манипулировать, когда 99,99% все JavaScript-код необходимо запустить.
Ответ 2
У меня есть запись этого с MVC 3 здесь: http://blogs.msdn.com/b/stuartleeks/archive/2011/01/25/asp-net-mvc-3-integrating-with-the-jquery-ui-date-picker-and-adding-a-jquery-validate-date-range-validator.aspx
Ответ 3
Похоже, вы выполняете встроенную строку JavaScript при загрузке страницы. В этом случае селектор #basics
не сможет найти вход с помощью id="basics"
, поскольку он еще не разобран и не отображен в теле документа.
Ваше решение может быть таким же простым, как перемещение элемента script
вашего кода в позицию после элемента input
.
Еще лучше, подпишитесь на документ, готовый или загруженный документами, и выполните код jQuery в обработчике этого события.
$(document).ready(function() {
$("#basics").datepicker();
});
В этом есть ряд преимуществ. Вы можете быть уверены, что весь DOM готов к использованию, и нет никакой зависимости от порядка исходного кода, означающего, что вы могли бы переместить JavaScript во внешний файл в будущем, чтобы использовать различные механизмы кэширования на стороне клиента.
Ответ 4
Где на странице вы загружаете скрипты и где вы вызываете инициализацию datepicker?
Ниже приведен пример использования готовых сокращенных документов jQuery и селекторов css для более легкой инициализации datePickers.
Вот код бритвы для поля ввода образца (обратите внимание на поле "дата" css)
<div class="form-group">
@Html.LabelFor(m => m.DateOfBirth, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.DateOfBirth, new { @class = "form-control datefield" })
</div>
</div>
Вот javascript, необходимый для инициализации любого datepicker с помощью селектора css
$(function() { $ ( "DateField" ) DatePicker().
});
Код>
Я собрал учебник, подробно описывающий специфику и образец решения ASP.NET MVC5 на github
http://prestoasp.net/using-the-jquery-datepicker-with-asp-net-mvc/
https://github.com/fredo007/i6technology/tree/master/InsuranceSales