市面上当然有很多成型的框架,比如jquery的validation插件各种吧。现在工作地,由于前端童鞋也没用这些个插件。根据业务的要求,自己就在代码里写了个简单的表单提交的检测代码(php的也写了一个哈哈),类也封装的不太完善,很多校验规则也没做,类里边对传入参数也没做啥改动,算是不健壮吧(主要自己不会坑自己,老实的该传什么就传什么了哈哈)。业务上主要就是对表单字段的必填啊,类型啊,长度这些个限制。
var str = new Submit_check(obj).alert_str();if (str){alert(str);}</script><script type="text/javascript" src="jquery.js"></script><script type="text/javascript">function Submit_check(obj){this.obj = obj;this.str = '';this.arr = {'empty_arr':[[], '不能为空'], // 元素为空数组'type_arr':[[], '类型不正确'], // 元素类型不正确'length_arr':[[], '字符过长'] // 元素过长};this.alert_str = function(){// 遍历满足情况for(var x in this.obj){var name = this.obj[x][0];// 表单字段的中文名var value = this.obj[x][1];// 字段的值// 为空if (typeof value == 'undefined' || value == '' ){this.arr.empty_arr[0].push(name);} else {// 类型错误if (this.obj[x][3] !='' && this.obj[x][3] != typeof value) this.arr.type_arr[0].push(name);// 长度过长if (this.obj[x][2] !=0 && this.obj[x][2] < value.length) this.arr.length_arr[0].push(name);}}// 输出strfor(var y in this.arr){if (this.arr[y][0].length){this.str += this.arr[y][0].join(',')+' '+this.arr[y][1]+'\n';}}return this.str;}}var a1 = 'b',b1 = 12,c1 = 'aaadsfaaaaaab',d1 = 'a',e1 = '';// key->表单字段英文名 value内数组顺序-->字段中文名、值、长度、类型;// 长度为0表示不需要检测长度;类型为空表示不需要检测类型var obj = {'a' : ['地球', a1, 10, 'number'],'b' : ['火星', b1, 0, 'number'],'c' : ['月球', c1, 8, ''],'d' : ['土星', d1, 12, 'string'],'e' : ['木星', e1, 8, '']};