Диалог jQuery: не запускаются ли другие проверки на стороне клиента должным образом? - PullRequest
0 голосов
/ 19 декабря 2011

Из того, что я поиграл с JQuery Dialog, я заметил, что некоторым элементам в диалоговом окне не всегда удается правильно загрузить.

Сценарий:

1)Я нажал кнопку, чтобы загрузить диалоговое окно.

2) В диалоговом окне есть кнопка сохранения, кнопка закрытия и 2 текстовых поля, 1 из которых связано с указателем даты Jquery.Другим является текстовое поле, которое [Обязательно].

С помощью кнопки сохранения у меня есть поведение:

$.validator.unobtrusive.parse("#EventManage");

Кажется, что:

1) Datepickerне работает мгновенноВместо этого мне нужно закрыть диалоговое окно и открыть его несколько раз, чтобы заставить его работать.

2) Если я нажимаю сохранить, а проверка иногда вообще не работает.Чтобы заставить его работать, иногда требуется несколько раз закрыть диалоговое окно.

3) Если эта проверка работает, показывая ошибку, средство выбора даты больше не работает.

4)при первом запуске диалоговое окно загружается довольно долго.

Есть идеи, почему такое странное поведение?

РЕДАКТИРОВАТЬ

Firebug показывает мне вещи: -

DateTime: - я - неопределенная функция (f) {f = a (f.target) .closest ("но ... d (" a "). RemoveClass ("ui-state-hover ");

Кнопка не может ни пройти проверку, ни отправить форму: - $ .validator.unobtrusive $ .validator.unobtrusive.parse (" # EventManage ");

Если щелкнуть любое текстовое поле, а затем щелкнуть в другом месте: - c.validator.methods [e] не определено [Break On This Error] prepareElement: function (a) {this.reset (... возникла ошибка при проверке элемента "+

РЕДАКТИРОВАТЬ

Похоже, причина в двойных ссылках на файлы js.

Функции работают нормально.у.Тем не менее, я сталкиваюсь с указателем даты, но не могу выбрать какую-либо дату.Есть идеи?:)

РЕДАКТИРОВАТЬ 3

Я думаю, что нашел проблему.У меня есть DateDicker setDefaults, который устанавливает дату для maxdate: 0 в моем основном макете.Теперь я устанавливаю указатель даты в частичном cshtml диалогового окна как minDate: 1. Как мне переопределить указатель даты макета?

РЕШЕНО: просто нужно установить maxDate: null.уф!

1 Ответ

0 голосов
/ 19 декабря 2011

Каждый раз, когда вы обновляете DOM и заменяете соответствующее поле ввода DatePicker, так же, как вы подключаете ненавязчивую проверку на стороне клиента, вы должны повторно присоединять DatePicker: $('.datepicker').datepicker();.

...