最近在用 jquery的插件easyui,由于validatebox的默认只有3种验证模式。想有一个符合自己需求的这种ajax的验证,在网上百般搜索代码,没有一个能用的。无奈自己看着手册摸索一个。
自己第一个版本失败了,每次输入字符cpu都在蠢动。郁闷、肯定是验证太不严谨。由于手册比较简单,不懂jeasy的重写视图。期间参阅许多大才们的文章。可惜忘了收藏...没法贴出。
【html代码】
【js代码】
【远程验证脚本】
【jeasyui官网】[url]http://www.jeasyui.com[/url]
【附上这位大才的翻译】[url]http://www.cnblogs.com/Philoo/archive/2011/11/17/jeasyui_api_index.html[/url]
[u][b]如有错误和不严谨的地方望各位看官不吝指教。[/b][/u]
自己第一个版本失败了,每次输入字符cpu都在蠢动。郁闷、肯定是验证太不严谨。由于手册比较简单,不懂jeasy的重写视图。期间参阅许多大才们的文章。可惜忘了收藏...没法贴出。
【html代码】
<input class="easyui-validatebox" required="true" validType="loginName[位数, 远程验证文件, 命名, 参数3可选]" missingMessage="不为空提示"></input>
【js代码】
$.extend($.fn.validatebox.defaults.rules, {
loginName: {
// param 参数集合
validator: function (value, param) {
if (value.length < param[0]) {
$.fn.validatebox.defaults.rules.loginName.message = '用户名要' + param[0] + '位数!';
return false;
} else {
if (!/^[\w]+$/.test(value)) {
$.fn.validatebox.defaults.rules.loginName.message = '用户名只能英文字母、数字及下划线的组合!';
return false;
} else {
var postdata = {};
if (param[3]) {
postdata[param[2]] = param[3];
} else {
postdata[param[2]] = value;
}
var result = $.ajax({
url: param[1],
data: postdata,
type: 'post',
dataType: 'json',
async: false,
cache: false
}).responseText;
if (result == 'false') {
$.fn.validatebox.defaults.rules.loginName.message = '用户名已存在!';
return false;
} else {
return true;
}
}
}
},
message: ''
}
【远程验证脚本】
//这个可以根据自己的脚本写
//一系列SQL查询,返回结果
if (NO){
return true;
} else {
return false;
}
【jeasyui官网】[url]http://www.jeasyui.com[/url]
【附上这位大才的翻译】[url]http://www.cnblogs.com/Philoo/archive/2011/11/17/jeasyui_api_index.html[/url]
[u][b]如有错误和不严谨的地方望各位看官不吝指教。[/b][/u]