有时在表单提交前,需要对所填报或者选择的数据进行校验,只有先通过校验的数据才能到达后台的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", "错误信息显示!"));
}