Abrar Kazi Ответов: 1

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

вау, потрясающе, хорошо. :)

1 Ответов

Рейтинг:
2

Abrar Kazi

Обновите jquery. Это единственное решение, которое я нашел для этой проблемы. Спасибо Картику.