因为easy ui本身提供了前台验证框架,所以也不用费心费力去找了,并且效果还不错。也支持后台验证。
//class="easyui-validatebox"表示采用easyui-validatebox组件。验证信息会类似tooltip弹出,这点比较好
//required=true,该Input不能为空
//validType="remote['/role/checkRoleName4New','ROLE_NAME']">表示验证类型是后台验证,参数是role_name,后台可以用req.getParameter("ROLE_NAME")得到这个值
<input name="ROLE_NAME" class="easyui-validatebox" required=true validType="remote['/role/checkRoleName4New','ROLE_NAME']">
未完待续。。。。。
后续发现的问题:
1:onkeyup就会验证,会不断的请求后台(如remote),尝试改成onblur后验证。---------------------麻辣隔壁的,公司忽然停用easy ui了,因为要收费。
今天也没有找到解决办法。遇到新问题:关于js中设置全局变量问题。
2:remote后面只能带一个参数,今天遇到新场景:修改角色的验证,要传roleId和roleName两个到后台才能验证是否重复。所以要自定义。
贴一哈代码:
/**
* 需要传递两个参数的唯一性验证(比如修改时的唯一性验证)
* @param value是验证所在的value
* @param param包含调用传过来的所有参数。现在约定:第一个参数:url,第二个参数:验证框所在的请求名称,第三个参数:第二个参数值的id
* */
jQuery.extend(jQuery.fn.validatebox.defaults.rules,{
unique:{
validator:function(value,param){
var result;
var val = jQuery("#"+param[2]).val();
jQuery.ajax({
type:"POST",
async:false,//比如同步哈,不然result赋值失败
url:encodeURI(param[0]+"?"+param[1]+"="+value+"&"+param[2]+"="+val),
success:function(data){
result = data;
}
});
//true:正确,不报错。false则要显示message
return result;
},
message:"已存在"
}
});