Я динамически генерирую форму, основанную на данных, полученных от вызова RPC, в объект FormFieldData, который содержит информацию о поле, которое будет отображаться, например, Имя поля, ожидаемая длина и тип ввод, если поле является обязательным полем или нет, и допустимый ввод Regex в некоторых случаях и т. д.Доступ к тексту в текстовом поле GWT из ChangeEvent
Я хотел бы иметь возможность выполнять проверку в поле в зависимости от вышеуказанных атрибутов. Вот пример:
private void renderTextField(FormFieldData field){
FormGroup formGroup = new FormGroup();
FormLabel formLabel = new FormLabel();
if(field.isRequired()){
formLabel.setText(field.getName()+"*");
}else{
formLabel.setText(field.getName());
}
formGroup.add(formLabel);
TextBox textBox = new TextBox();
textBox.addChangeHandler(new ChangeHandler(){
@Overrride
public void onChange(ChangeEvent event){
//TODO - find a way to get the text entered in TextBox
// and perform validation on it
//and set the TextBox Style to "Validation-error"
}
});
formGroup.add(textBox);
form.add(formGroup);
}
Там вы подобные методы визуализации выпадающие, числовые поля, поля радио кнопки и т.д., которые должны были бы подобную проверку.
Проблема заключается в том, что я не могу получить доступ к тексту из TextBox внутри метода onChange, не объявив его final, чего я не могу сделать, потому что я могу отображать несколько текстовых полей. Я мало знаю об ChangeEvent и если есть способ получить текст из этого.
Я очень благодарен за любые указатели на способ сделать это в режиме реального времени, так как данные вводятся в форму, за исключением необходимости перебирать поля и их соответствующий объект FormFieldData при отправке формы.
Работает отлично, спасибо большое! – Rohit