Validate.js
$.extend($.fn.validatebox.defaults.rules,{
CHS : {
validator : function(value, param) {
return /^[\u0391-\uFFE5]+$/.test(value);
},
message : '请输入汉字'
},
ZIP : {
validator : function(value, param) {
return /^[1-9]\d{5}$/.test(value);
},
message : '邮政编码不存在'
},
QQ : {
validator : function(value, param) {
return /^[1-9]\d{4,10}$/.test(value);
},
message : 'QQ号码不正确'
},
mobile : {
validator : function(value, param) {
return /^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$/
.test(value);
},
message : '手机号码不正确'
},
doubleNumber : {
validator : function(value, param) {
return /^[-+]?\d+(\.\d+)?$/.test(value);
},
message : '只能是数字小数点负号'
},
TaskpointName : {
validator : function(value, param) {
return !/^[\"&?%#$]*$/.test(value);
},
message : '名称不允许</br>输入双引号、&、?、%、#、$。'
},
loginName : {
validator : function(value, param) {
return /^[\u0391-\uFFE5\w]+$/.test(value);
},
message : '名称只允许汉字</br>字母、数字及下划线。'
}
});
Html页面使用情况
<!--doubleNumber就是Js验证类型 同时要引入该Js -->
<td><input id="xxx" name="xx" validType="doubleNumber" /></td>
验证字段是否唯一
/**
* 字段的唯一性校验
* validType="unique['findValidationMarkernumber.do','add','','id',true,'输入值已存在']"
* 第一个参数:请求的url;
* 第二个参数:add/update;新增为add,修改为update,新增修改用同一页面时为update;
* 第三个参数:是hidden的id;新增时为空,修改时在页面中加一个hidden(只要id属性不要name属性),在加载时给hidden赋值
* 第四个参数:要验证的表的字段或实体属性
* 第五个参数:ture/false;true:要求不存在数据但是库中有数据;false:要求存在但是数据库中没有数据
* 第六个参数:提示信息内容
* 第七个参数:实体名称
* @param {Object} value
* @param {Object} param
* @memberOf {TypeName}
* @return {TypeName}
*/
$.extend($.fn.validatebox.defaults.rules,{
unique: {
validator: function(value, param){
if(!(param.length != 5 || param.length != 6)){
this.message = "参数个数配置错误";
return false;
}
var url = param[0];
var type = param[1],controlId = param[2],msg = "";
if(type != "" && controlId != ""){
var controlValue = $("#"+controlId).val();
if(type == "update" && controlValue != ""){
if(value == controlValue){
return true;
}
}
}
var flag = param[4];
if(param.length == 5){
msg = flag ? "输入值已存在" : "输入值不存在";
$("#submit").removeAttr("disabled");
}else{
msg = param[5];
}
var response = $.ajax({
url:url,
type:"post",
datatype:"json",
async:false,
data:{
"fieldname" : param[3],
"fieldvalue" : value,
"entityName" : param[6]
}
}).responseText;
var b = $.parseJSON(response);
//exists
if(flag){
if (b == "1" || b == true) {
this.message = msg;
$("#submit").removeAttr("disabled");
return false;
} else{
return true;
}
}else{ // not exists
if (b == "1" || b == true) {
return true;
} else{
this.message = msg;
return false;
}
}
},
message: '输入值已存在'
}
});
后台代码
/**
*
*@User :Test
*@date :2014-5-17 上午11:14:27
*@return :String
*@userFor : Controller
*/
@RequestMapping(value = "/isRepeat")
@ResponseBody
public String isRepeat(HttpServletRequest request){
String fieldname = request.getParameter("fieldname");
String fieldvalue = request.getParameter("fieldvalue");
String entityName= request.getParameter("entityName");
//标志位用于区别新增和修改
String flag = request.getParameter("flag");
return xxService.countField(fieldname,fieldvalue,flag,entityName);
}
/**
*
*@User :Test
*@date :2014-5-17 上午13:14:27
*@return :String
*@userFor : Service
*/
public String countField(String fieldname,String fieldvalue,String flag,String entityName){
int size = this.xxDao.checkRepeat(fieldname, fieldvalue,flag,entityName);
if(size==0)
return "0";
return "1";
}
/**
*
*@User :Tesr
*@date :2014-6-17 下午03:42:53
*@return :int
*@userFor :xxDao判断是否唯一
*/
public int checkRepeat(String fieldname,String fieldvalue,String flag,String entityName){
String hql = " from "+entityName+" where 1=1 and x.historicalstate=1";
if("add".equals(flag))
{
hql+= " and x."+fieldname+" ='"+fieldvalue+"' ";
}
else
{
hql+= " and x."+fieldname+" ='"+fieldvalue+"' and x."+fieldname+" !='"+flag+"'";
}
return find(hql).size();
}
html页面验证
<td><input id="markernumber" validType="unique['isRepeat.do','add','','字段名',true,'该XX已存在','实体名']" /></td>