最近在用 jquery的插件easyui,由于validatebox的默认只有3种验证模式。想有一个符合自己需求的这种ajax的验证,在网上百般搜索代码,没有一个能用的。无奈自己看着手册摸索一个。
自己第一个版本失败了,每次输入字符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官网】http://www.jeasyui.com
【附上这位大才的翻译】http://www.cnblogs.com/Philoo/archive/2011/11/17/jeasyui_api_index.html
如有错误和不严谨的地方望各位看官不吝指教。