Почему вы не можете добавить обработчик EditorExit к DynamicForm или FormItem?
Этот обработчик существует только для ListGrid.
Но если вы посмотрите на документы для DynamicForm.setValidateOnExit(), он говорит:
Если установлено значение true, элементы формы будут проверяться при запуске обработчика каждого элемента "editorExit", а также при отправке или проверке всей формы.
Обратите внимание, что это свойство также можно установить на уровне элемента, чтобы включить более точную проверку гранулярности в ответ на взаимодействие с пользователем - если true на любом уровне, проверка будет происходить в editorExit.
Итак, как мы можем добавить EditorExitHandler в DynamicForm или FormItem?
РЕДАКТИРОВАТЬ:
Я хочу создать панель ошибок под формой, чтобы динамически показывать все ошибки. Каждый FormITem имеет возможность проверки на выходе, но я не знаю, как захватить это событие проверки, чтобы проверить, должна ли панель ошибок обновляться или нет.
2 ответа
После некоторых исследований я до сих пор не нашел убедительного ответа. Я думаю, это должно быть требование разработчика
Есть один метод form.getErrors()
а также form.showError(true)
, Этим вы можете достичь этого. Но для этого вам также нужно установить Validator для каждого поля.
TextItem name = new TextItem("name", "Name");
name.setRequired(true);
name.setRequiredMessage("Please specify name of the Table");
NTRegExpValidator nameValidator = new NTRegExpValidator("(^[a-zA-Z0-9][\\w\\s.()_-]+)$","It should start with alphabets and can have alphanumeric values ( )_-. and space.");
name.setValidators(nameValidator);
name.addKeyUpFieldHandler(new KeyUpHandler){
form.getErrors();
form.showErrror(true);
});
DynamicForm form = new DynamicForm();
form.setField(name);