jQuery轻量级表单模型验证插件


Posted in jQuery onOctober 15, 2018

JQuery插件,轻量级表单模型验证,供大家参考,具体内容如下

附上源码和Demo段

var validataForm = (function(model) {
  model.Key = "[data-required='true']";
  model.ElementList = new Array();
  model.FunctionDictionary = new Dictionary();
  model.ToastrCustom = function (msg) {
    alert(msg);
  }

  model.AddElement = function (name) {
    model.ElementList.push(name);
  };

  model.AddFunction = function (name, func) {
    model.FunctionDictionary.add(name, func);
  };

  model.Validata = function (formName) {
    for (var i = 0; i < model.ElementList.length; i++) {
      var thisObj = model.ElementList[i];
      var str = formName + " " + thisObj + model.Key;
      var elements = $(str);

      for (var j = 0; j < elements.length; j++) {
        var element = elements.eq(j);
        var value = element.val();

        var elementType = element.data().type;

        var func = model.FunctionDictionary.find(elementType);
        if (func) {
          var result = func(value, element);

          if (result.status) {
            var errorInfo = result.message;
            model.ToastrCustom(errorInfo);
            return;
          }
        }
      }
    }
  };

  model.ElementList.push("input");
  model.ElementList.push("select");
  model.FunctionDictionary.add("required", function (value, element) {
    var name = element.data().name;

    return {
      status: (value === ""),
      message: (value === "" && name + "不能为空")
    };
  });

  return model;
})(window.validataForm || {});

调用处

<form id="ValidataForm">
  <input data-required="true" data-name="名称" data-type="required" value="">
  <input data-required="true" data-name="昵称" data-type="hello">
  <button id="Send">提交</button>
</form>
<script src="~/js/plugs/jquery-3.3.1.js"></script>
<script src="~/js/Dictionary.js"></script>
<script src="~/js/ValidataForm.js"></script>
<script type="text/javascript">
  $("#Send").click(function () {
    validataForm.Validata("#ValidataForm");
  });
</script>

Dictionary这个对象是抄一个博主的
代码附上,内置链接

/* https://www.cnblogs.com/baiyangyuanzi/p/6689554.html */
/*字典 Dictionary类*/
function Dictionary() {
  this.add = add;
  this.datastore = new Array();
  this.find = find;
  this.remove = remove;
  this.count = count;
  this.clear = clear;
}

function add(key, value) {
  this.datastore[key] = value;
}

function find(key) {
  return this.datastore[key];
}

function remove(key) {
  delete this.datastore[key];
}

function count() {
  /*var ss = Object.keys(this.datastore).length;
  console.log("ssss  "+ss);
  return Object.keys(this.datastore).length;*/
  /**/
  var n = 0;
  for (var key in Object.keys(this.datastore)) {
    ++n;
  }
  return n;
}

function clear() {
  for (var key in this.datastore) {
    delete this.datastore[key];
  }
}

萌新初试前端,有写得不好的地方,望各位前辈,多多指教。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery 添加样式属性的优先级别方法(推荐)
Jun 08 jQuery
jquery实现下拉菜单的手风琴效果
Jul 23 jQuery
jQuery实现手势解锁密码特效
Aug 14 jQuery
使用jQuery实现简单的tab框实例
Aug 22 jQuery
jQuery实现可兼容IE6的滚动监听功能
Sep 20 jQuery
jQuery除指定区域外点击任何地方隐藏DIV功能
Nov 13 jQuery
jQuery中图片展示插件highslide.js的简单dom
Apr 22 jQuery
jQuery实现模糊搜索功能的方法分析
Jun 29 jQuery
jQuery中常用动画效果函数知识点整理
Aug 19 jQuery
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
Oct 10 jQuery
Jquery让form表单异步提交代码实现
Nov 14 jQuery
jquery将信息遍历到界面上实例代码
Jan 21 jQuery
jquery实现联想词搜索框和搜索结果分页的示例
Oct 10 #jQuery
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
Oct 10 #jQuery
jquery.param()实现数组或对象的序列化方法
Oct 08 #jQuery
jQuery实现点击图标div循环放大缩小功能
Sep 30 #jQuery
学习jQuery中的noConflict()用法
Sep 28 #jQuery
jQuery序列化form表单数据为JSON对象的实现方法
Sep 20 #jQuery
jQuery pjax 应用简单示例
Sep 20 #jQuery
You might like
php+oracle 分页类
2006/10/09 PHP
PHP数据缓存技术
2007/02/14 PHP
实用函数4
2007/11/08 PHP
php实现无限级分类实现代码(递归方法)
2011/01/01 PHP
php预定义变量使用帮助(带实例)
2013/10/30 PHP
php实例分享之mysql数据备份
2014/05/19 PHP
PHP实现链表的定义与反转功能示例
2018/06/09 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
PHP简单验证码功能机制实例详解
2019/03/27 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
一个判断email合法性的函数[非正则]
2008/12/09 Javascript
tangram框架响应式加载图片方法
2013/11/21 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
2016/11/04 Javascript
vue+element-ui+axios实现图片上传
2019/08/20 Javascript
对layer弹出框中icon数字参数的说明介绍
2019/09/04 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
jQuery插件simplePagination的使用方法示例
2020/04/28 jQuery
在Vue中创建可重用的 Transition的方法
2020/06/02 Javascript
vue实现简单加法计算器
2020/10/22 Javascript
[56:24]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第二局
2016/03/04 DOTA
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
python数据结构树和二叉树简介
2014/04/29 Python
Python内置函数—vars的具体使用方法
2017/12/04 Python
python调用win32接口进行截图的示例
2020/11/11 Python
利用纯CSS3实现tab选项卡切换示例代码
2016/09/21 HTML / CSS
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
一道输出判断型Java面试题
2014/10/01 面试题
行政人事岗位职责
2014/03/17 职场文书
投资合作协议书
2014/04/17 职场文书
娱乐节目策划方案
2014/06/10 职场文书
求职导师推荐信范文
2015/03/27 职场文书
人民检察院起诉书
2015/05/20 职场文书
浅谈Python响应式类库RxPy
2021/06/14 Python
oracle删除超过N天数据脚本的方法
2022/02/28 Oracle