jquery验证框架之remote验证方法的扩展使用
jquery.validate.js这个用得很多,确实不错,最近在远程方法使用时,因不满足我的需求,这里做了点扩展,和大家共享。
// http://docs.jquery.com/Plugins/Validation/Methods/remote
remote: function(value, element, param) {
if ( this.optional(element) )
return "dependency-mismatch";
// 这里是第一次扩展的,本来直接传这个值取值进来可以的,不知道为什么后来取不到值了
if(param.oldValue&¶m.oldValue==value)
return true;
//因为第一次扩展取不到值了,就增加了这个扩展方法。不需要重复使用
if(param.oldValueID&¶m.oldValueID!=''){
var myoldvalue=$(param.oldValueID).val();
if(myoldvalue&&myoldvalue==value){
return true;
}
}
上面是在jquery.vlidate.js里的remote方法里增加的代码。
下面是在实际使用时的示例。
categoryName : {
required : true,
specialCharacter : true,
remote:{
oldValueID:'#oldcategoryName', //传对应原值的id就行了。这里生效的是第二次扩展的代码
url:WEBROOT+"/admin/publishcategory/checkCategoryNameIsCanUsed.do",
data:{name:function() { return $('#categoryName').val(); }}
}
},
//-----------
categoryName : {
required : true,
specialCharacter : true,
remote:{
oldValue:$('#oldcategoryName').val(), //取对应原值就行了。这里生效的是第一次扩展的代码
url:WEBROOT+"/admin/publishcategory/checkCategoryNameIsCanUsed.do",
data:{name:function() { return $('#categoryName').val(); }}
}
},
但这个代码有时候不起作用,可能是需要在页面加载时就给这个元素赋值才行的,后面赋值就不行了