js 表单验证

/*表单验证

调用1  validate_form('form'): 调用验证 form为表单form ID 

调用2  validate_form('form',1): 调用验证 form为表单form ID  1 表示提交表单

 

<input type="text" value="" name="name" id="name" mod="ismobile" msg="不正确">

<input type="text" value="" name="name" id="name" mod="isempty|ismobile" msg="不能为空不正确|必须为手机">

<input type="text" value="" name="name" id="name" mod="isnumeral|ismobile" msg="" len="5-12">

*/

;(function($){

var conf = {

"isemail": {

msg: '邮箱地址格式不正确',

reg: /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/

},

"ismobile": {

msg: '手机号码不正确',

reg: /^1(3\d{1}|5[389])\d{8}$/

},

"isidentity": {

msg: '证件格式不正确',

reg: /^(d){5,18}$/

},

"isempty": {

msg: '该字段不能为空',

reg: /./

},

"isnumeral": {

msg: '必须为数字',

reg: /[\d]+$/

}

};

//计算汉字长度

function str_len(str) {

var charset = document.charset; 

var len = 0;

for(var i = 0; i < str.length; i++) {

len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? (charset == "utf-8" ? 3 : 2) : 1;

}

return len;

}

//验证有没有弹出信息 cmsg 配置信息, msg 自定义信息

function validate_msg(cmsg,msg)

{

if(typeof(msg) != 'undefined' && msg!='')

{

return msg;

}else

{

return cmsg;

}

}

//验证是否有isempty  字段,如果没有并且值为空不验证

function validate_mod(mod,v)

{

if(mod.indexOf('isempty')==-1 && v=='')

{

return false;

}else

{

return true;

}

}

//验证长度

function validate_length(len,v)

{

var num = str_len(v);

if(typeof(len) == 'undefined') return true;

var l = parseInt(len.split('-')[0],10);

var r = parseInt(len.split('-')[1],10);

if(num < l || num > r) return false;

return true;

}

//根据不同模式类型做处理 返回验证结果 v 值

function mod_deal(input,mod,msg,v,len)

{

var result = true;

if(!validate_length(len,v))

{

alert(validate_msg('长度应为'+len+'位',msg));

input.focus();

return false;

}

switch(mod)

{

case '':

break;

default:

if(typeof(conf[mod]) != 'undefined')

{

if(!conf[mod].reg.test(v))

{

alert(validate_msg(conf[mod].msg,msg));

input.focus();

result = false;

}

}

}

return result;

}

//处理验证

function validate_start(obj)

{

var mod = obj.attr('mod');

var value = obj.val();

var msg = obj.attr('msg');

var len = obj.attr('len');

if(!validate_mod(mod,value))

{

return false;

}

msg = typeof(msg) != 'undefined'?msg:'';

var mods = mod.split('|');//用竖线分割操作

var msgs = msg.split('|');//有竖线分割信息

for(var i=0;i<mods.length;i++)

{

if(!mod_deal(obj,mods[i],msgs[i],value,len))

{

return false;

}

return true;

}

//验证

function validate(objs)

{

var result = true;

objs.each(function(){

result = validate_start($(this));

if(!result)

{

return false;

}

});

return result;

}

//验证  input 

function validate_input(id)

{

var objs = $("#"+id+" input[mod]");

return validate(objs);

}

//验证select 

function validate_select(id)

{

var objs = $("#"+id+" select[mod]");

return validate(objs);

}

window['validate_form'] = function(id , type)

{

var submit = validate_input(id);

if(submit){submit = validate_select(id);}

if(type==1 && submit)

{

$('#'+id).submit();

}

return submit;

}

})(jQuery);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值