下面是一段利用bootstValidator对ItsmDemo表单进行校验的js方法,我们重点看的是remote校验器
$('#ItsmDemo').bootstrapValidator({
message: '验证失败',
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
'itsmDemoVo.userName': {
message: '用户名验证失败',
validators: {
notEmpty: {
message: '用户名不能为空'
},
stringLength: {
min: 6,
max: 30,
message: '用户名长度在6-30个字符之间!'
},
regexp: {
regexp: /^[a-zA-Z0-9_\.]+$/,
message: '用户名只能是拼音字母、数字或下划线组成'
},
remote: {
url: baseURL+'/demo/checkUser.action',
message: '用户名已存在!',
}
}
},
'itsmDemoVo.sex': {
validators: {
notEmpty: {
message: '出生日期性别不能为空'
}
}
}
}
});
remote说明:
BootstrapValidator会自动将用户在页面上填写的数据以”itsmDemoVo.userName“带过去 ,我们只需要在action中以改名称获取即可。
如果返回 String msg="{\"valid\":"+flg+" }"; 为true,说明校验通过,反之校验不通过
在用户填写一个字符,它就会有一个请求,然后事实现实校验的结果
我们可以在url中带其他的参数到action中,如下的java代码:
url: baseURL+"/systemdef/checkSysCode.action?orgsyscode=<%=umsystemVo.getSyscode()%>",
.在下面的action会对提交过来的数据进行校验并返回
@Action("checkMenuCode")
public String checkMenuCode(){
try{
String menucode=request.getParameter("ummenuVo.menucode");
String menucodeOrginal = request.getParameter("menucode");
boolean flg= true;
/**
校验不通过,
1.编辑的时候
menucodeOrginal not null
um not null
um.getmenucode!= menucodeOrginal
2.添加的時候
menucodeOrginal nul
um not null
*/
String sql = "select *from ummenu where menucode='"+menucode+"'";
List<Ummenu> ummenus = ummenuService.getListBySql(sql);
Ummenu um = new Ummenu();
if(ummenus.size()>0){
um = ummenus.get(0);
}
if(menucodeOrginal==null&&um!=null){
flg = false;
}
if(menucodeOrginal!=null&&ummenus.size()>0&&!menucodeOrginal.equalsIgnoreCase(um.getMenucode())){
flg = false;
}
/*
if(ummenus!=null){
if(ummenus.size()>0){
flg = false;
}
}*/
String msg="{\"valid\":"+flg+" }";
this.toJsonObject(msg);
}catch (Exception e){
e.printStackTrace();
}
return null;
}