2015-05-27 4 views
0

Я работаю над формой, где я использую простые элементы. Когда я проверяю входной текст, то сообщение ajax работает только для поля, а не для остальных, пожалуйста, проверьте мой код ниже.Проверка правильности не работает

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:f="http://java.sun.com/jsf/core" 
    xmlns:p="http://primefaces.org/ui"> 
    <h:head> 

    </h:head> 
    <h:body> 
    <h2>h:validateLength Example</h2> 
    <h:form> 
    <p:panel id="panel" header="New User"> 
    <label for="name" >Name*</label> 
     <p:inputText id="name" value="#{userData.name}" 
     label="name" > 
     <f:validateLength minimum="7" /> 
     <p:ajax execute="currentInput" update="msgLastname" event="blur" process="@this"/> 

     <p:message for="name" id = "msgLastname" display="icon" style="color:red" /> 
     </p:inputText> 



     <p:inputText id="lastname" value="#{userData.lastname}"> 
     <f:validateLength minimum="5"/> 
     <p:ajax execute="currentInput" update="msg" event="blur" process="@this"/> 
     <p:message for="lastname" id="msg" display="icon"/> 
     </p:inputText> 


     <p:commandButton value="submit" action="result" /> 
    </p:panel> 
    </h:form> 
</h:body> 
</html> 
+0

Какие поля вы хотите проверить? –

+0

Привет - Я пытаюсь проверить фамилию и имя, но ajax показывает msg только для первого поля, но не для второго – Nishank

ответ

1

Вы должны переместить <p:message> теги вне из <p:inputText> тегов, как это:

<p:inputText id="name" value="#{userData.name}" label="name" > 
    <f:validateLength minimum="7" /> 
    <p:ajax execute="currentInput" update="msgLastname" event="blur" process="@this"/> 
</p:inputText> 

<p:message for="name" id="msgLastname" display="icon" style="color:red" /> 

<p:inputText id="lastname" value="#{userData.lastname}"> 
    <f:validateLength minimum="5"/> 
    <p:ajax execute="currentInput" update="msg" event="blur" process="@this"/> 
</p:inputText> 

<p:message for="lastname" id="msg" display="icon"/> 

Если вы хотите, чтобы показать, как в тексте, и значок в сообщении проверки, то удалите параметр display="icon", например:

<p:message for="name" id="msgLastname" style="color:red" /> 
+0

Огромное спасибо Тиму, его работа сейчас. – Nishank

+0

Привет, Тим, не могли бы вы рассказать мне, как добавить мое собственное сообщение об ошибке для проверки на стороне клиента? – Nishank

+0

'FacesContext.getCurrentInstance(). AddMessage (« имя », новый FacesMessage (FacesMessage.SEVERITY_ERROR,« Ошибка ввода! »,« Имя должно быть не менее 7 символов »)); –

Смежные вопросы