页面校验写法总结
来源:互联网 发布:埃微智能手环 知乎 编辑:程序博客网 时间:2024/06/06 23:10
1.在页面校验较多的情况,或者网络波动较大时。会出现异步校验未返回时,已经提交表单
解决:
var lock = false;$('input[name="username"]').blur(function(){ lock = true; //对异步校验加锁 $.post('/xx', data, function(d) { //success lock = false; d.status=...; })})$('button').click(function(){ var flag = false; $('input').each(function() { while(lock) { //在lock未解锁时,先进行等待。 避免出现异步未起作用的情况 } //其次在,进行提交前。应该将所有需要提交的字段,进行重新校验 //避免在出现jQuery事件不兼容于IE发生的问题,或者已经修改而未起作用的校验 $(this).trigger('blur'); //判断错误信息没有出现后 if(...) { flag = true; } }) if(flag) { form.submit(); }});
在上述提交表单时,再次进行校验使用了blur事件。 如果是IE的某个版本,这个会有缺陷。
解决方法:将校验字段封装入function方法,在提交时,校验方法
function validateUsername() { var username = $('input[name="username"]').val(); if('' == username || null == username) { //尽量使用通用方法 showError(username, location); }}$('button').click(function(){ //重复校验一次 validateUsername(); ... //统计错误信息,对应操作})
2.建立自己的工具库
(function() { var myUtil = (function() { var reg = { 'ConfigPhone' : /^(13\d|14[57]|15[^4,\D]|17[678]|18\d)\d{8}|170[059]\d{7}$/, 'ConfigUsername' : /^[-_0-9a-z]{4,20}$/i }; return function(){ this.configPhone = function(selector) { var phone = selector.val(); var result = {}; if('' == phone) { result.status = 0; result.message = '不能为空'; } //调用属性里面的reg.ConfigPhone校验 else if((phone.length>0&&phone.length!=11)||!reg.ConfigPhone.test(phone)) { result.status = 1; result.message = '不符合格式'; } else { result.status = 9; result.message = ''; } } } })(); //声明为全局变量 window.util = new myUtil();})();//外层调用$('input[name="username"]').blur(function(){ var result = util.configPhone($(this)); //静态校验,通过工具类和公用函数,减少操作量,可通用 showError(location. result.message); if(result.status == 9) { //进行异步校验等操作 }})
0 0
- 页面校验写法总结
- 做页面时特殊符号的写法技巧总结
- js undifined校验简便写法
- 项目总结一:页面弹出框+表单输入与校验形式,实现添加内容到页面
- 页面数据校验
- 页面校验调试问题
- 页面数据校验类
- 页面校验通用js
- 页面数据校验类
- amazeui页面校验
- 注册页面校验
- php登录页面写法
- 页面只读JS写法
- jsp页面规范写法
- H5 页面写法
- 页面链接地址写法
- struts 校验属性错误显示写法
- CRC校验解释及编程写法
- HBase高级
- netstat 命令使用
- 局域网文件分享协议和方案的探究
- HRESULT的详细说明
- java栈和列队
- 页面校验写法总结
- java中的字符串在前台页面换行
- hadoop 的排序:key排序和分组排序
- opnfv compilation error 5-fuel-ui gulp
- Linux开源系统对比Windows闭源系统的优势解析
- linux应用层定时器
- 批量kill mysql processlist进程
- spring注解的方式读取properties文件中的内容
- gcc的__attribute__编译属性