Избегайте дублирования обратной связи, которая уже отображается через ComponentFeedbackMessageFilter - PullRequest
0 голосов
/ 01 марта 2020

В моей форме есть одна панель обратной связи для общих сообщений обратной связи и два поля ввода формы, каждое со своей собственной панелью обратной связи для проверочных сообщений обратной связи. Однако, когда ввод формы не проходит проверку, сообщение обратной связи появляется как на панели для сообщения обратной связи поля, так и на панели для общих сообщений. Это не то, что я хочу, потому что сообщения обратной связи дублируются:

Wicket form validation feedback

HTML:

<h2>The Form</h2>
<form wicket:id="loginForm">
    <div wicket:id="allFeedback"></div>

    <div wicket:id="usernameFeedback"></div>
    <p>Username: <input wicket:id="username" type="text"/></p>

    <div wicket:id="passwordFeedback"></div>
    <p>Password: <input wicket:id="password" type="password"/><p>

    <input type="submit" name="Login" value="Login"/>
</form>

Java:

TextField usernameField = new TextField("username", Model.of(""));
usernameField.setRequired(true);
add(usernameField);

PasswordTextField passwordField = new PasswordTextField("password", Model.of(""));
add(passwordField);

add(new FeedbackPanel("allFeedback"));
add(new FeedbackPanel("usernameFeedback",
                      new ComponentFeedbackMessageFilter(usernameField)));
add(new FeedbackPanel("passwordFeedback",
                      new ComponentFeedbackMessageFilter(passwordField)));

Есть ли способ предотвратить дублирование? Я не хочу дублировать сообщения обратной связи с указанием поля c в общей панели обратной связи.

1 Ответ

0 голосов
/ 01 марта 2020

отметьте руководство пользователя , чтобы узнать, как реализовать пользовательский фильтр сообщений обратной связи. Это может быть полезно для общей панели обратной связи, чтобы отбрасывать сообщения от usernameField и passwordField.

...