2011-03-09 85 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 
}