ComponentFeedbackPanel с Firefox 3.6.x - PullRequest
       1

ComponentFeedbackPanel с Firefox 3.6.x

0 голосов
/ 11 августа 2011

Следующий код работает нормально во всех браузерах, которые я пробовал, за исключением Firefox 3.6.x.

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

Я что-то пропустил или это просто ошибка в Wicket или Firefox 3.6?(это с Wicket 1.4.x - я только что обновился до 1.4.18 в надежде, что он там исправлен, я также попробовал некоторые старые версии 1.4.x и последнюю версию 5.1 RC).

package com.mycompany;

import org.apache.wicket.PageParameters;
import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior;
import org.apache.wicket.extensions.validation.validator.RfcCompliantEmailAddressValidator;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.panel.ComponentFeedbackPanel;
import org.apache.wicket.util.time.Duration;

public class HomePage extends WebPage 
{
    private static final long serialVersionUID = 1L;

    public HomePage(final PageParameters parameters)
    {
        add(new FormX());
    }

    private class FormX
        extends Form<Void>
    {
        FormX()
        {
            super("form");
            final TextField<String>      field;
            final ComponentFeedbackPanel feedback;

            field = new TextField<String>("a");
            field.add(RfcCompliantEmailAddressValidator.getInstance());
            field.setRequired(true);
            field.setOutputMarkupId(true);
            feedback = new ComponentFeedbackPanel("b", field);

            feedback.setOutputMarkupId(true);
            add(field);
            add(feedback);
            AjaxFormValidatingBehavior.addToAllFormComponents(this,
                                                              "onkeyup",
                                                              Duration.milliseconds(250));
        }
    }
}

<html xmlns:wicket="http://wicket.apache.org/dtds.data/wicket-xhtml1.4-strict.dtd" >
    <head>  
        <title>Wicket Quickstart Archetype Homepage</title>
    </head>
    <body>
        <strong>Wicket Quickstart Archetype Homepage</strong>
        <br/><br/>
            <form wicket:id="form">
                <input class="in" type="text" wicket:id="a"/>
                <label wicket:id="b">[Feedback]</label>
            </form>
    </body>
</html>

1 Ответ

0 голосов
/ 11 августа 2011

Оказывается, вам нужно использовать <span wicket:id="b"></span> вместо метки.

...