表单提交前 校验方法

来源:岁月联盟 编辑:exp 时间:2012-08-28
  有时在表单提交前,需要对所填报或者选择的数据进行校验,只有先通过校验的数据才能到达后台的action中,这样就省去了每次提交都到action中去校验的步骤,能提高效率。方法就是在确定前执行脚本,去验证:(xxx代表一个bean)
<h:commandButton value="确定"  action="#{xxx.listReport}"   onclick="return checkSelectIteam()"/>
js 校验方法:
function checkSelectIteam(){
          var rptyear = $("#xxxForm//:rpt_year").val();    //下拉框选择年度值
          var repType = $("#xxxForm//:repType").val();     //下拉框选择类型值
          if(-1 == rptyear || -1 == repType){
                 alert("请选择年度和类型!");
                 return false;
          }else{
                 return true;
          }
}
这样只有先通过checkSelectItema()方法之后合法的数据才能提交到后台
还有另外一种方法是添加validator的校验方法,如下:
将如下代码添加到table中或者其它地方,
<h:inputHidden id="hi" value="fff"validator="#{xxx.validateType}"></h:inputHidden>
然后在需要显示提示信息的地方引用此方法返回值:
<h:message for="hi"></h:message> </span>
<h:outputText value="当前不在任何填报期内,不需要进行填报!" ></h:outputText>
后台调用的validateType方法如下:
public void validateRepType(FacesContext context, UIComponent component, Object obj){
……
throw new ValidatorException(new FacesMessage("info", "错误信息显示!"));