js表单验证插件ajax,【WEB】自己写的js 表单验证插件

[JavaScript] 纯文本查看 复制代码;

(function($) { // 开启沙箱模式

zz = { // 定义一个 名为 zz 的方法,在这里添加常用正则, 例如 zz.notNull() 调用

notNull: function(){ return /^.+$/;}, // 不能为空

chinese:function(){ return /^[\u4e00-\u9fa5]+$/;}, // 中文

email:function(){return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/;}, // 邮箱

post:function(){return /^[1-9][0-9]{0,}$/;},//邮政编码

num:function(){return /^[0-9]*$/;}, // 数字

ffzs:function(){return /^\d+$/;}, // 非负整数

aBc123:function(){return /^[A-Za-z0-9]+$/;},//数字和英文

mobile:function(){return /^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/;},//手机号

tel:function(){return /^1[0-9]{10}$/;},// 手机号

fax:function(){return /^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$/;}//传真

}

$(function() {

var suCount = 0; // 成功提交前提 ,为 0 可以提交 ,为 1 不可提交

$.fn.lc_val_form = function(options) {

var valiJSON=toValiJson();

$("#" + options["subId"]).click(function() { // 提交按钮被单击

suCount = 0;

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

var val = $("#" + valiJSON[i].vaId).val();

eachVali(val, i);

}

if(options["ifAjax"] == "yes" && suCount == 0) { // 如果 选择 ajax 提交 ,那么如果校验全部通过,提交 ,提交后可使用 getAjax=function(data){alert(data);} 获取返回数据

$.ajax({

type: "post",

url: $("#" + options["formId"]).attr("action"),

async: false,

data: $("#" + options["formId"]).serialize(),

success: function(data) {

getAjax(data);

},

error: function(XMLHttpRequest, textStatus, errorThrown) {

console.log("ajax 提交表单报错了!");

if(XMLHttpRequest.status==404){

console.log("错误tips:--网页走丢了--");

}

else if(XMLHttpRequest.status==500){

console.log("错误tips:--内部服务器错误--");

}

}

});

} else if(options["ifAjax"] == "no" && suCount == 0) { // 如果选择 普通方式提示,那么提交 form action 里的地址

$("#" + options["formId"]).submit();

}

});

// -----------------------------------------------------------

if(options["realTime"] == "yes") {

$("#"+options["formId"]).addClass("formVali");

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

$("#"+valiJSON[i].vaId).addClass("vali");

}

$(".formVali .vali").on('blur', function() {

var t = $(this);

var valiJSON=toValiJson();

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

if(t.attr("id") == valiJSON[i].vaId) {

var getId = t.attr("id");

var val = $("#" + getId).val();

eachVali(val, i);

}

}

})

}

//------------------------------------------------------------

function eachVali(val, i) {

for(var j = 0; j < valiJSON[i].rule.length; j++) {

function addTip() {

if(options["ifImg"] == "yes") {

$("#" + valiJSON[i].tipId).html("%22%20+%20options%5B%22ImgUrl%22%5D%20+%20%22" + " " + valiJSON[i].rule[j].tip);

suCount = 1;

} else {

$("#" + valiJSON[i].tipId).html(valiJSON[i].rule[j].tip);

suCount = 1;

}

}

if(typeof(valiJSON[i].rule[j].reg) != 'undefined') { // 第一种: 标准正则校验

var ifSucc = valiJSON[i].rule[j].reg.test(val);

if(valiJSON[i].rule[j].reg.toString()=="/^.+$/")// 如果正则是判断非空,那么正常执行

{

if(!ifSucc) {

addTip();

break; // 条件不成立-跳出循环

} else {

$("#" + valiJSON[i].tipId).html("");

}

}else{ // 否则,需判断 值要不能为空

if(!ifSucc&&val!="") {

addTip();

break; // 条件不成立-跳出循环

} else {

$("#" + valiJSON[i].tipId).html("");

}

}

} else if(typeof(valiJSON[i].rule[j].maxLe) != 'undefined') { // 第二种: 长度校验

if(val.length > parseInt(valiJSON[i].rule[j].maxLe) || val.length < parseInt(valiJSON[i].rule[j].minLe)) {

addTip();

break;

} else {

$("#" + valiJSON[i].tipId).html("");

}

} else if(typeof(valiJSON[i].rule[j].ajaxURL) != 'undefined') { // 第三种: ajax 校验 0:不成立 1:符合条件

var d="";

$.ajax({

url: valiJSON[i].rule[j].ajaxURL,

data: valiJSON[i].rule[j].value,

type: 'post',

traditional: true,

async: false,

dataType: "json",

success: function(data) {

d=data;

},

error: function(XMLHttpRequest, textStatus, errorThrown) {

console.log("ajax 校验报错了!");

if(XMLHttpRequest.status==404){

console.log("错误tips:--网页走丢了--");

}

else if(XMLHttpRequest.status==500){

console.log("错误tips:--内部服务器错误--");

}

}

});

if(parseInt(d)==0){

addTip();

break;

}else{

$("#" + valiJSON[i].tipId).html("");

}

} else if(typeof(valiJSON[i].rule[j].custom) != 'undefined') { // 第四种 ,自定义校验,自己写函数,返回 true 或 false

if(!valiJSON[i].rule[j].custom()) {

addTip();

break;

} else {

$("#" + valiJSON[i].tipId).html("");

}

} else { // 以上皆不成立,说明 校验json 书写有误

suCount = 1;

console.log("输入的校验规则有误!");

}

}

}

}

});

})(jQuery);

// @且听风吟

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值