ошибочные поля в валидации - PullRequest
       33

ошибочные поля в валидации

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

Я пытаюсь сделать мои текстовые поля ошибочными, когда проверка не удалась для компонента формы.Я добавляю значение «error» к своему атрибуту класса текстового поля, что делает его красным.

Я делаю это, переопределяя метод onValidate () в форме и определяя мои компоненты, чтобы увидеть, есть ли у них ошибки.

@Override
    protected void onValidate() {
        super.onValidate();
        Iterator<Component> compIter = iterator();
        while(compIter.hasNext()) {
            final Component comp = compIter.next();
            if(comp instanceof AbstractTextComponent<?>) {
                comp.add(new AttributeAppender("class", new Model<String>() {
                    @Override
                    public String getObject() {
                        return (comp.hasErrorMessage())?"error":"";
                    }
                }, " "));
            }
        }
    }

Это работает, но когда я смотрю на сгенерированный HTML:

<input id="user_username" class="normal error error error" type="text" name="user.userName" value="stijn" maxlength="25" wicket:id="user.userName">

Он генерирует значение ошибки 3 раза.Что я делаю не так?

Это лучший способ сделать это в калитке или есть лучшие способы ???

thx, Коэн

1 Ответ

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

Я не знаю, почему он печатает 3 раза "ошибка".Вместо написания своего собственного инструмента вы можете использовать этот.https://cwiki.apache.org/WICKET/automatic-styling-of-form-errors.html

...