2011-03-09 87 views
0

如何验证此代码用户输入有效的IP地址我想在用户输入时显示消息0.0.0.0我可以使用请求范围的bean并将其注册为inputtadress片段中的所有inputtext并检查4个inputtext字段但我想知道有没有其他的方法。验证UI:片段

 <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> 

回答

1

您可以使用validatorhere是非常好的文章从BalusC

0

你可以像Joshi建议的那样使用你自己的验证器(实际上我也使用过BalusC的文章),或者只需在动作中检查IP地址并在输入“0.0.0.0”时发布消息。

我们通常做的是在验证阶段对单个字段进行语法检查,并在调用应用程序阶段进行更多的语义检查(多个字段组合)。

0

如果你不想在bean中检查它,你可以用javascript来做到这一点。调用JavaScript函数的每个关键是在你输入栏按下时间并为您在您的函数,如果所有inputfields包含零:

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

,并在你的脚本:

function keyPressed() { 
check for zero content 
}