2012-02-03 4 views
5

Мы используем «XPages» (родной) элемент управления сообщениями об ошибках, чтобы показать ошибки проверки правильности. Оно работает. Проверка выполняется путем установки поля по мере необходимости и ввода сообщения об ошибке поля. Ничего особенного.Как установить порядок проверки сообщений?

Теперь необходимо установить сообщения об ошибках в том же порядке, что и в форме. Это возможно?

Я предполагаю, что могу создать пользовательский валидатор (Java) и выполнить все проверки формы там в определенном порядке (просто протестирован интерфейс проверки ... но еще не используется id).

+0

В каком порядке сообщения об ошибках отображаются по умолчанию? Я предположил, что они отображаются в том же порядке, что и в исходном коде (но я вижу, что это может быть не тот порядок, который появляется после того, как CSS был применен) –

+0

Я бы не ожидал, что заказ обязательно будет так же, как источник. Точно так же я его не тестировал. Но я ожидаю, что он будет запускать преобразователи перед валидаторами, поэтому сначала могут отображаться элементы управления с ошибкой преобразователя. Другим местом для проверки будет созданный класс Java. Это будет то, что работает, поэтому порядок элементов управления может быть порядком, в котором были созданы элементы управления, а не порядок, который они отображаются на панели «Источник». В этом случае переупорядочение класса Java может изменить порядок сообщений об ошибках –

+0

@Paul - фактически конвертер поля запускается непосредственно перед проверкой значения. Так что он все еще в порядке, где они появляются в дереве. Поэтому, если у вас есть два поля в дереве компонентов, один за другим, а поле 1 завершается с ошибкой при проверке, а сбой поля 2 при конверсии, вы увидите ошибку проверки, а затем ошибку преобразователя. –

ответ

0

Существует старый (неразрешенный) аргумент: если ошибки появляются рядом с элементом управления, который не прошел проверку, поверх формы или рядом с кнопкой, которую вы нажали для отправки. Я стараюсь помещать их рядом с неудавшимся элементом управления и имеет одно сообщение рядом с показанием кнопки: «Извините, я не смог обработать входные данные, помочь мне и исправить поля, содержащие рядом с ними сообщения об ошибках». Тогда последовательность уже не проблема. Если вы хотите быть на 100% уверенным, что вместо сводного контроля вы можете использовать отдельные элементы управления рядом друг с другом.

В любом случае, было бы приятным упражнением: пусть управление сообщением об ошибке изменит css отказавшего элемента управления, поэтому становится яснее, на что обратить внимание.

+0

Вы можете стиль неудачного управления по-другому, используя эту технику: http://dontpanic82.blogspot.com/2011/07/xpages-styling-invalid-field.html –

+0

Я также разместил «расширенный» контроль сообщений об ошибках, который генерирует ссылки на сообщения об ошибках, чтобы вы могли щелкнуть сообщение об ошибке, чтобы установить фокус на недопустимые поля. http://dontpanic82.blogspot.com/2011/07/custom-control-for-enhanced-validation.html –

+0

Пользовательский элемент управления сообщениями об ошибках, с которым я связан, должен теперь отображать сообщения об ошибках в том порядке, в котором элементы управления находятся в страница. –

0

Проверки запускаются один за другим, чтобы они находились в дереве компонентов. В зависимости от того, как вы хотите их отображать, вы можете перемещать компоненты вокруг, а затем стилизовать их с помощью css. Или, если вы действительно просто хотите переместить порядок сводных операторов в ящике сообщений, я бы просто использовал JS для их перемещения, я считаю, что они просто отображаются как UL. Только наличие одного валидатора не будет работать, поскольку один и тот же валидатор будет запущен для каждого компонента в порядке дерева компонентов.

Смежные вопросы