Проверка пользовательского интерфейса: фрагменты - PullRequest
0 голосов
/ 09 марта 2011

Как проверить этот код, чтобы пользователь вводил действительный IP-адрес. Я хочу показывать сообщение, когда пользователь вводит 0.0.0.0. Я могу использовать bean-объект в области запроса и зарегистрировать его для всего входного текста во фрагменте входного адреса и проверить 4 поля входного текста, но я хочу знаю, есть ли другой способ.

     <ui:fragment >
                    <ui:include src="/misc/inputaddress.xhtml">
                        <ui:param name="id" value="ip" />
                        <ui:param name="value"
                                  value="#{externalDataStorageAdder.storage.inputAddr}"
                                  />

                    </ui:include>
                </ui:fragment>

и это inputaddres

<div
    style="border: 1px solid #c0c0c0; background-color: #ffffff; width: 162px;">
<h:inputText id="#{id}-field1"
    style="width: 25px; border: 0px; text-align: center; background-color: white; background-image: url('');"
    maxlength="3" value="#{value.field1}" onfocus="this.select();"
    onkeyup="number_only(this);">
    <f:validateLongRange minimum="0" maximum="255" />
</h:inputText> . <h:inputText id="#{id}-field2"
    style="width: 25px; border: 0px; text-align: center; background-color: white; background-image: url('');"
    maxlength="3" value="#{value.field2}" onfocus="this.select();"
    onkeyup="number_only(this);">
    <f:validateLongRange minimum="0" maximum="255" />
</h:inputText> . <h:inputText id="#{id}-field3"
    style="width: 25px; border: 0px; text-align: center; background-color: white; background-image: url('');"
    maxlength="3" value="#{value.field3}" onfocus="this.select();"
    onkeyup="number_only(this);">
    <f:validateLongRange minimum="0" maximum="255" />
</h:inputText> . <h:inputText id="#{id}-field4"
    style="width: 25px; border: 0px; text-align: center; background-color: white; background-image: url('');"
    maxlength="3" value="#{value.field4}" onfocus="this.select();"
    onkeyup="number_only(this);">
    <f:validateLongRange minimum="0" maximum="255" />
</h:inputText></div>

Ответы [ 3 ]

1 голос
/ 09 марта 2011

Вы можете использовать validator, здесь - очень хорошая статья от BalusC

0 голосов
/ 09 марта 2011

Если вы не хотите проверять это в компоненте, вы можете сделать это с помощью JavaScript. Вызывайте функцию javascript при каждом нажатии клавиши в поле ввода и проверяйте в своей функции, все ли поля ввода содержат ноль:

<h:inputText id="..." onkeypress="keyPressed();" .../>

и в вашем скрипте:

function keyPressed() {  
 check for zero content
} 
0 голосов
/ 09 марта 2011

Вы можете использовать свой собственный валидатор, как предложил Джоши (на самом деле я тоже использовал эту статью BalusC) или просто проверить ip-адрес в действии и опубликовать сообщение, если введено «0.0.0.0».

Обычно мы выполняем синтаксическую проверку отдельных полей на этапе проверки и более тщательную семантическую проверку (несколько полей в комбинации) на этапе вызова приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...