ASP.NET AJAX инструментарий MaskEditExtender Маска автозаполнения даты - PullRequest
0 голосов
/ 16 декабря 2011

Я использую asp.net ajax toolkit maskeditextender для маскировки текстового поля для ввода даты.Но проблема в том, что я не могу проверить это по дате, которую они вводят правильно.Если я отключу маску автозаполнения, и она наберет 7 косая черта 6 косая черта 88, она заполнит «07/06/88», что, как ни странно, является недопустимой датой.Если я автоматически заполняю маску, она должна автоматически заполняться до «07/06/1988», но она автоматически завершается до «07/06/0088», даже если я установил век на 1900 ...

Любой совет?

Мое решение:

Итак, автозаполнение ужасно.Вам, вероятно, придется написать несколько JS, чтобы поставить 19 перед YY, потому что он просто добавляет 00. Таким образом, вы получаете «07/06/0088» ...

Как ответил автор, я включил автозаполнениевыкл, но это все равно не подтвердит правильность даты.Я использовал валидатор сравнения с датой.Но, как оказалось, ему нужен очень специфический формат:

"07/06/1988"

и больше ничего.Итак, я написал специальный валидатор, который добавляет нули к месяцу и дню и 19 к году.Кроме того, когда я использовал значение поля txt, мне пришлось повторить то же исправление, чтобы преобразовать его в datetime без исключения.

1 Ответ

1 голос
/ 16 декабря 2011

Я видел эту проблему раньше, и есть несколько исправлений в разных сетях. Вы устанавливаете MaskType на «Дата» или «Нет»? Если вы используете Date, вам может потребоваться написать собственный код для автозаполнения правильными цифрами. Если вы используете None, вы сможете указать четырехзначный год, что эффективно устранит проблему с автозаполнением. Вероятно, это тот путь, по которому я бы порекомендовал вам пойти, потому что вы все еще можете ограничить ввод цифрами и подтвердить ввод как дату, но вам не нужно беспокоиться об автозаполнении не того столетия.

...