Jquery datepicker выбирает первый год из списка после определенного диапазона лет
$('.DateOfBirth').datepicker({ changeMonth: true, changeYear: true, dateFormat: 'dd/mm/yy', defaultDate: new Date(), yearRange: "-100:+0" });
Приведенный выше код приводит список лет в диапазоне от 2017 до 1917 года в выпадающем списке года datepicker.
Теперь, когда я выбираю год, скажем, 2000, выпадающий список устанавливает значение года на 2000, что правильно, и он отлично работает до 2000 года, но если я выбираю год до 2000, скажем, 1999 и т. д., выпадающий список отображает первый год, то есть 1917 год в выпадающем списке, но если я выбираю дату, он заполняет выбранный год 1999, например, 23.08.1999, что правильно, но в выпадающем списке все еще отображается 1917 год.
Примечание: текстовое поле, имеющее вышеприведенный класс и вышеприведенный код, находится в частичном представлении, которое отображается на представлении.
Выпадающий список месяца работает отлично, это просто выпадающий список года создает проблему. Также я удалил атрибут yearRannge и попробовал еще раз, но он не работает.
если yearRange = -100:+0, то выбирается 1917 год, если я выбираю любой год до 2000 года
если yearRange = -100:+100, то если я выберу 1950, то он выберет 2050, если 1970, то он выберет 2070 и так далее.
Что я уже пробовал:
Я попытался вызвать функции onselect, но у меня ничего не получилось.
Karthik_Mahalingam
протестировали ваш код, он отлично работает.
какую версию jquery вы используете?
Abrar Kazi
1.11
Karthik_Mahalingam
я попробовал с 1.12.1 тот, что находится на демо-странице jQuery ui
Abrar Kazi
что здесь может пойти не так я не могу перейти на 1.12
Abrar Kazi
можем ли мы по скайпу обмениваться изображениями?
Karthik_Mahalingam
Нет сэр
вы можете разместить изображение на любом бесплатном хостинге изображений ( imgur.com ) и поделиться url-адресом
Abrar Kazi
ладно. http://imgur.com/a/sJnOA
Karthik_Mahalingam
никакое изображение
Abrar Kazi
http://imgur.com/47H3oUs
Abrar Kazi
http://imgur.com/47H3oUs
Karthik_Mahalingam
проверьте, не появляется ли какая-либо ошибка в окне консоли chrome
Abrar Kazi
Неа, я проверил, что . дата после выбора становится красной, если вы видите картинку, и я не могу изменить дату тогда
Karthik_Mahalingam
вы установили какие-либо проверки для текстового поля ?
Abrar Kazi
да этот :
функция PopulateFormateddate(dateValue1, date2) {
if (dateValue1 != "") {
ВАР дата = dateValue1.сплит("/");
if (date[2]. length != 4) {
var intyear = parseInt(дата[2]);
если (intyear >= 30)
{
date[2] = parseInt(date[2]) + 1900;
}
ещё {
date[2] = parseInt(date[2]) + 2000;
}
}
var myDate = null;
пробовать {
var myDate = new Date(parseInt(date[2])+ 0, date[1] -1, parseInt(date[0]));
}
поймать (ошибаться) {
myDate = null;
}
если (myDate != 'Неверная Дата) {
$(date2). datepicker ('setDate', myDate);
}
}
}
Abrar Kazi
это называется как :
$("#txtdobclient"). blur (функция () {
PopulateFormateddate ($("#txtdobclient"). val (), $("#txtdobclient"));
});
Karthik_Mahalingam
что это за логика ?
if (date[2]. length != 4) {
var intyear = parseInt(дата[2]);
если (intyear >= 30) {
date[2] = parseInt(date[2]) + 1900;
}
ещё {
date[2] = parseInt(date[2]) + 2000;
}
}
что такое формат даты?
Karthik_Mahalingam
что такое dateValue1, date2 ?
Abrar Kazi
dateValue1 : значение текстового поля, в котором выбрана дата
date2: идентификатор txtbox
Karthik_Mahalingam
хорошо, какой формат даты используется в текстовом поле?
Abrar Kazi
@HTML-код.TextBoxFor(м =&ГТ; м. dobclient, "{0:DD/мм/гггг}", новый { @идентификатор = "txtdobclient", @класс = "дата рождения DefaultToolTip", @свойство tabindex = 15, @data_toggle = "всплывающая подсказка", @data_placement = "право" )
Karthik_Mahalingam
что вы здесь делаете
if (dateValue1 != "") {
ВАР дата = dateValue1.сплит("/");
if (date[2]. length != 4) {
var intyear = parseInt(дата[2]);
если (intyear >= 30)
{
date[2] = parseInt(date[2]) + 1900;
}
ещё {
date[2] = parseInt(date[2]) + 2000;
}
Abrar Kazi
я проверяю, не пусто ли значение в текстовом поле.
Если он не пуст, то он проверит, является ли дата[2], которая является годом этой даты, длиной 4, например, 2001, если нет, то он войдет внутрь
Karthik_Mahalingam
но почему в текстовом поле год отображается как 4-значный обряд?
тогда она никогда не войдет только внутрь.
Abrar Kazi
да, не будет. давайте забудем о проверке, которую я прокомментировал. тем не менее, отображаемый год неверен. но отображаемый календарь правильный и при выборе даты он будет отображать правильную дату т. е. 21/02/1995 но в выпадающем списке год он будет показывать 1917 год
Abrar Kazi
даже если я не поставлю проверку выше, она не будет работать так же. предположим, что нет никакой проверки, если я прокомментирую, что функция still id не работает, поэтому я сомневаюсь, что validation msg имеет что-то с ней .
Karthik_Mahalingam
это то, что я пробовал
<html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>jQuery UI Datepicker - Default functionality</title> <link rel="stylesheet" href="http://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css"> <script src="https://code.jquery.com/jquery-1.12.4.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> <script> $(function () { $('.DateOfBirth').datepicker({ changeMonth: true, changeYear: true, dateFormat: 'dd/mm/yy', defaultDate: new Date(), yearRange: "-100:+0" }); }); </script> </head> <body> <p>Date: <input class="DateOfBirth" type="text" id="datepicker"></p> </body> </html>
Abrar Kazi
да это точно то же самое что и мой код не знаю где я ошибаюсь
Karthik_Mahalingam
попробуйте на отдельной странице
Abrar Kazi
ладно, большое спасибо за то время, пока я посмотрю, чего мне не хватает. между тем если вы думаете что я что то упускаю и это напоминает вам об этом оставьте комментарий
Karthik_Mahalingam
конечно, но мне нужно увидеть полный код, тогда я смогу увидеть, откуда произошла ошибка.
Abrar Kazi
я забыл упомянуть, что текстовое поле datepicker находится в частичном представлении, есть ли в этом проблема ?
Karthik_Mahalingam
имеет ли частичное представление ссылки на js?
Abrar Kazi
нет, наверное. у него просто есть эта ссылка :
&ЛТ;скрипт СРЦ="@URL-адрес.Содержание("~/Scripts/InputFieldFormat.js")"&ГТ;
Какую ссылку я упускаю ? и где на него следует ссылаться в частичном представлении или представлении
Karthik_Mahalingam
убрать это и проверить
&ЛТ;скрипт СРЦ="@URL-адрес.Содержание("~/Scripts/InputFieldFormat.js")"&ГТ;
все ссылки должны быть в главном представлении
Abrar Kazi
Сделал это, нет, это не работает.
также обратите внимание, что класс выше используется несколькими текстовыми полями. может ли это быть причиной ?
Karthik_Mahalingam
мне нужно видеть анализировать
Abrar Kazi
Выпадающий список месяца работает отлично, это просто выпадающий список года создает проблему. Также я удалил атрибут yearRannge и попробовал еще раз, но он не работает.
если yearRange = -100:+0, то выбирается 1917 год, если я выбираю любой год до 2000 года
если yearRange = -100:+100, то если я выберу 1950, то он выберет 2050, если 1970, то он выберет 2070 и так далее.
Karthik_Mahalingam
если вы поможете мне воспроизвести ту же проблему с моей стороны, то я смогу дать ей решение..
Abrar Kazi
хорошо я дам вам свой код здесь попробуйте его с вашей стороны :
частичное представление :
@HTML-код.TextBoxFor(м =&ГТ; м. dobclient, "{0:DD/мм/гггг}", новый { @идентификатор = "txtdobclient", @класс = "DateOfBirth DefaultToolTip", @свойство tabindex = 15, @data_toggle = "всплывающая подсказка", @data_placement = "право" })
Сценарий в частичном представлении :
$('.DateOfBirth').отмечать({
changeMonth: true,
changeYear: true,
формат даты: 'dd / mm/yy',
defaultDate: новая дата(),
yearRange: "-100:+0"
});
Смотреть :
@Html. Partial ("_PartialViewName", Модель)
Karthik_Mahalingam
хорошо я буду ЧК
Karthik_Mahalingam
попробовал ваш код, он отлично работает..
удалить @class = "DateOfBirth DefaultToolTip", @tabindex = 15, @data_toggle = "tooltip", @data_placement = " right"
эти атрибуты и проверяют
Abrar Kazi
я удалил все вышесказанное :
@HTML-код.TextBoxFor(м =&ГТ; м. dobclient, "{0:DD/мм/гггг}", новый { @идентификатор = "txtdobclient" })
$('#txtdobclient'). datepicker({
changeMonth: true,
changeYear: true,
формат даты: 'dd / mm/yy',
defaultDate: новая дата(),
yearRange: "-100:+0"
});
не сработало
Karthik_Mahalingam
Попробуйте с 1.12.1 и проверьте
Abrar Kazi
я попробовал его отдельно в другом проекте, и там он отлично работает
Karthik_Mahalingam
Хаан, затем проверьте, почему это не происходит на вашей текущей странице.
возможно, вы что-то упускаете
SrikantSahu
Никогда не видел такого долгого разговора, чтобы решить проблему. @Картик, всего наилучшего
Karthik_Mahalingam
Спасибо он :)
иногда такое случается
если у вас есть какие-либо идеи по этому вопросу, пожалуйста, опубликуйте свои идеи по этому поводу.
Abrar Kazi
Привет, Картик, я думаю, что в этом случае есть новое открытие возможной проблемы.
на моей странице макета это скрипты :
&ЛТ;скрипт СРЦ="@URL-адрес.Содержание("~/Scripts/jquery.1.11.3-min.js")"&ГТ;
<!-- Форма Datepicker -->
несоответствие версий пользовательского интерфейса jquery и jquery . может ли это быть причиной ?
Karthik_Mahalingam
Да может быть
Abrar Kazi
Сейчас я обновил пользовательского интерфейса jQuery 1.11.3 на jQuery 1.12.1 и все работало нормально.
Единственное, что мне теперь нужно проверить, это то, что обновление jquery не повлияет на какую-либо другую операцию wrt jquery, так как этот сайт будет жить с изменениями.
Большое вам спасибо за вашу помощь. Овации :)
Karthik_Mahalingam
вау, потрясающе, хорошо. :)