验证<h:inputtext>的新值是否不高于旧值</h:inputtext>

时间:2014-09-16 13:24:21

标签: ajax validation jsf

我想控制<h:inputText>中的值..我希望一旦我离开输入字段,如果我的值高于旧值,则显示错误消息,输入后我无法验证字段value lower(从数据库加载旧值)

我做过这样的事情:

  <p:column headerText="Qte" >
        <h:inputText  value="#{ligne.qte}"   styleClass="span12"   required="true" valueChangeListener="#{myBean.changeQte}" >
        <h:message id="message"></h:message>
         <p:ajax event="keyup" listener="#{myBean.onQteChange}" update="message" />
         </h:inputText>
        </p:column>

在myBean中我有两种方法:

public void onQteChange(){
    String message =null;
    int newqte = getQte();
    if (newqte > previousQTE  ){
        message="invalid qte";
    }
}

public void onQteChange(){
    String message =null;
    int newqte = getQte();
    if (newqte > previousQTE  ){
        message="invalid qte";
    }
}

有人能告诉我怎么能这样做,因为即使我尝试在我的输入文本中调用ajax,我也没有结果?

1 个答案:

答案 0 :(得分:0)

您可以使用:

 public void onQteChange(){
   String message =null;
   int newqte = getQte();
   if (newqte > previousQTE  ){
   message="invalid qte";
   FacesContext.getCurrentInstance().addMessage(
    "message",new FacesMessage(FacesMessage.SEVERITY_ERROR, message,message));
  }
}


<p:column headerText="Qte" >
        <h:inputText  value="#{ligne.qte}"  id="x" styleClass="span12"   required="true" valueChangeListener="#{myBean.changeQte}" >
         <p:ajax event="keyup" listener="#{myBean.onQteChange}" update="message" />
         </h:inputText>
        <h:message id="message" for="x" />
 </p:column>