插件

作者: Cicada丶 | 来源:发表于2018-07-07 01:23 被阅读0次

概述

  • jQuery最著名的方面之一是它广泛的插件生态系统。从表排序到表单验证到自动完成-如果需要它,很有可能有人已经为它编写了一个插件。

  • 插件的原理

$.fn.greenify = function() {
    this.css( "color", "green" );
    return this;
}
 
$( "a" ).greenify().addClass( "greenified" );

jQuery formValidator插件

  • 使用插件必须加载的文件
//加载jQuery类库
<script type="text/javascript" src="jquery-1.7.1.min.js"></script>
//加载插件
<script type="text/javascript" src="formValidator-4.1.1.min.js"></script>
//加载扩展库(如果想用里面的函数、正则表达式,必须加载该文件)
<script type="text/javascript" src="formValidatorRegex.js"></script>
  • 主要函数
inputValiator       - 针对input、textarea、select控件的字符长度值范围、选择个数的控制
compareValidator    - 提供2个对象的比较,目前可以比较字符串和数值型
regexValidator      - 利用正则表达式验证
functionValidator   - 利用外部函数来做校验
passwordValidator   - 对密码强度进行校验
ajaxValidator       - 通过ajax到服务器上做数据校验
formValidator       - 对单个控件进行配置
defaultPassed       - 默认校验通过,显示onCorrect状态
unFormValidator     - 接触控件的验证功能
$.formValidator.initConfig      - 对整个校验组进行全局配置
$.formValidator.pageIsValid     - 对整个校验组进行校验,用来处理一个页面多个提交按钮的情况
$.formValidator.getLength       - 返回控件的长度/选择个数/索引号
$.formValidator.reloadAutoTip   - 重新定位提示层的位置
$.formValidator.retSetTipState  - 来把该组的提示内容恢复到内容刚打开的状态
$.formValidator.serialize       - 把指定的内容序列化,中文不会乱码
    1. 全局配置函数(必须):
<script type="text/javascript">
$.formValidator.initConfig({
    validatorGroup:"1", //校验组组号,默认"1"。formvalidator函数里的validatorGroup值如果和这里的值一样,就认为是同一组的控件.
    formId:"myform", //表单FORM的ID,插件自动在表单的submit事件里注册函数pageIsValid
    mode:"FixTip", //显示模式。固定提示层(FixTip)|自动构建提示层(AutoTip)|单个提示层跟随(SingleTip)|弹出提示内容(AlertTip)
    errorFocus:true, //整个校验组校验失败时,第一个出错的控件是否获得焦点,默认true 
    forceValid:true, //强制验证,同组的控件都采用:直到输入正确为止才允许离开焦点,默认true
    wideWord:true, //宽字节,默认true。是否把一个全角字符当做2个长度 
    onSuccess:function(){}, //该校验组通过后的回调函数,返回false,组织表单的提交 
    ajaxForm:Json, //把整个表单的数据通过ajax提交给服务器。
    submitOnce:false, //校验通过后,是否灰掉所有的提交按钮,默认false
    AjaxPrompt:String, //提交之前,如果存在ajax校验,且有未返回的,则在触发整组校验的时候会弹出此提示内容。默认值:“当前有数据正在进行服务器端校验,请稍候”,如果为空则不提示
    onError:function(msg,obj,errorlist){}, //该组校验失败后的回调函数 有三个参数 参数1: 一个校验没有通过的错误信息,参数2: 一个校验没有通过的元素对象,参数3: 所有的错误信息数组,你可以通过$.map来遍历 
    debug:false //调试模式,如果你设为调试模式,在校验成功后会有一个提示窗口:现在正处于调试模式(debug:true),不能提交, 默认false 
});
</script>
    1. 单个表单控件配置函数(必须,如果没有用{}空对象代替)
<script type="text/javascript">
$("#username").formValidator({
    validatorGroup:String, //校验组
    [empty](http://www.php.net/empty):false, //控件是否可以为空,默认false。如果是input-text控件,表示内容是否可以为空,如果是checkbox、radio、select控件表示是否可以不选择项
    onShowText:String, //显示在输入框里的提示,默认:""。
    onShowTextColor:Json, //输入框里提示的颜色,默认: {mouseOnColor:"#999999",mouseOutColor:"#000000"}。
    autoModify:Boolean, //自动修复错误,默认true。离开焦点,校验不通过,是否自动修复错误
    onEmpty:String, //空时候的提示,默认:"输入内容为空"。当内容为空的时候提示,为空则不显示提示内容。
    onShow:String, //显示的时候提示,默认:"请输入内容"。页面刚打开时候的提示消息,为空则不显示。
    onFocus:String, //获取焦点的提示,默认:"请输入内容"。控件获取焦点时候的提示,为空则不显示。
    onCorrect:String, //正确后的提示,默认:"输入正确"。当焦点离开控件的时候,如果输入正确将出现该提示,为空不显示。
    tipID:String, //提示层ID。默认用表单ID+"Tip",也可以显式的指明ID值。
    tipCss:Json, //自动构建的提示层样式,主要用于定位自动构建的提示层。有特定要求,详细看文档
    relativeID:String, //相对控件的ID,默认:当前校验控件的ID,采用自动构建提示层的时候,提示层相对的目标控件ID,tipCss属性就是相对于这个参数而言的
    pwdTipId:String, //默认:控件ID+Tip。用于显示密码强度校验提示的容器ID,默认跟tipID参数默认值相同,即显示在同个DIV里
    fixTipID:String, //默认:null。表示固定提示消息要放置的容器ID值。
    forceValid:Boolean, //是否强制输入,默认:true。是否一致到到输入正确为止才允许离开焦点
    ajax:Boolean, //提交服务器,默认true。某个控件有ajaxValidator函数校验的时候,该参数决定哪些控件的值一起提交给服务器。
    defaultValue:Object|String, //为input、select、textarea控件设置默认值
    triggerEvent:String, //触发校验的事件,默认blur。当前支持blur和change两种。
    leftTrim:Boolean, //去掉左边空格,默认false。是否先去掉左边空格再校验.
    rightTrim:Boolean, //去掉右边空格,默认false。是否先去掉右边空格再校验.   
});
</script>
  • 3.输入表单控件配置(可选)
<script type="text/javascript">
$("#xx").formValidator({}).inputValidator({
    type:Object, //比较类型,默认size。有以下几个类型:size:表示字符长度选择的个数;number:数值型比较;string:字符型比较;date:短日期比较;datetime:长日期比较
    min:Object, //最小长度/值。对checkbox/radio而言表示选中控件的个数,对text、password、textarea而言表示输入字符的长度或值得大小
    max:Object, //最大长度/值.
    onError:String, //发生错误时显示,默认:输入错误。为空则不显示 
    onErrorMin:String, //比min属性小的提示。
    onErrorMax:String, //比max属性大的提示。
    empty:Json, //是否允许两边为空,默认允许。默认值:{leftEmpty:true,rightEmpty:true,emptyError:null}
});
$("#xx").formValidator({}).compareValidator({
    desID:String, //要比较控件的ID。要跟源目标进行比较的目标ID
    operateor:String, //比较符号,一共有如下几种:=、!=、>、>=、<、<=
    dataType:String, //数据类型。目前只支持4种:"string","number","datetime","date"
    onError:String, //发生错误的提示。
});
$("#xx").formValidator({}).regexValidator({
    regExp:Object, //正则表达式或表达式数组。参数类型分为两类:1.字符型。2.字符数组型。都用来表示正则表达式或枚举类型。
    //采用的是显式构造函数new RegExp("pattern"[,"flags"]); 由于Javascript 中'\' 被用作转义字符,所以在使用显示构造函数构造实例对象的时候,需要使用'\' 代替'\'
    param:String, //附加参数,默认:"i"。值有几下几种类型:g、i、m
    compareType:String, //比较类型,默认:"||"。值有以下几种:||:或的关系;&&:并列的关系; 当regExp为数组的时候,当前这个参数就表示,数组里的正则表达式的相互关系。
    dataType:String, //默认:"string",数据类型.值有以下几种:string:自己写表达式;enum:枚举名。
    // 一般情况下,枚举名在formValidatorReg.js里设置,该脚本里已经默认带了几个常用正则表达式。你可以自己修改、添加formValidatorRegex.js里的枚举项目名和表达式。
    onError:String, //发生错误的提示。
});
$("#xx").formValidator({}).functionValidator({
    fun:Function, //属性名:外部函数名。    调用外部函数进行校验,提供2个参数:
    //参数1:元素的值,
    //参数2:元素对象。
    //返回值,有以下几种类型:
    //true: 校验成功
    //false: 校验失败 
    //字符串:校验失败,返回值当作自定义错误信息,将显示在提示层上
    //无: 仅当一个处理过程。
    //可以写匿名函数
    onError:String, //发生错误时显示
});
$("#xx").formValidator({}).passwordValidator({
    compareID:String //比较控件ID。例如,密码不能于用户名相同,则该参数为用户名的ID,错误提示用参数onErrorCompareSame
    onErrorCompareSame:String //值相同的错误提示。本参数要在compareID不为空的情况下才会起作用。如果想去掉该校验规则,本参数设置为空即可
    onErrorContinueChar:String //连续字符的错误提示。    默认不允许把连续字符当做密码。例如“123456”是非法密码。如果想去掉该校验规则,本参数设置为空即可
    onErrorSameChar:String //字符相同的错误提示。    默认不允许把相同字符当做密码。例如“111111”是非法密码。如果想去掉该校验规则,本参数设置为空即可
});
$("#xx").formValidator({}).ajaxValidator({
    type:String, //请求的类型,默认"GET"。
    url:String, //发送到的URL地址,默认当前页地址。在服务器端,你可以通过name为clientid获取触发验证的控件ID名
    dataType:String, //返回的数据类型,默认:"html"。包含以下几种类型:xml、html、script、json、text
    timeout:Number, //超时设置,默认999。
    data:Object,String, //数据
    async:Boolean, //是否异步发送,默认true。
    success:Function, //成功时的回调函数。
    processData:Object|String, //是否转换为对象,默认true。
    complete:Function, //完成时的调用函数。ajax请求结束的回调函数
    beforeSend:Function, //请求前调用的函数。
    buttons:String, //你点提交的按钮(组)对象。 当你触发了ajax校验,在发送之前,buttons里对应的按钮(组)就会灰掉,一直等待服务器返回数据为止,就重新亮起来
    error:Function, //失败时的回调函数。
    onWait:String, //正在校验的提示,默认:"正在等待服务器返回数据"。已经发送,但是服务器还未返回数据时候的提示消息。
    onError:Object|String, //校验没有通过的提示,默认:"服务器校验没有通过".该参数的类型有2种
    //1、字符串。发生错误时候的提示消息。2、函数。有两个参数,参数1:当前值 参数2:当前控件对象(dom)
});
</script>
  • 使用
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript" src="jquery-1.4.4.min.js"></script>
    <script type="text/javascript" src="formValidator-4.1.3.js"></script>
    <script type="text/javascript" src="formValidatorRegex.js"></script>
    <script type="text/javascript" src="themes/Default/js/theme.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $.formValidator.initConfig({ //用于配置当前formValidator插件
            formID:"form",
            debug:false,
            submitOnce:true,
            validatorGroup : '1', //设置验证组,默认值为1
            onSuccess : function(){ //验证成功后的回调函数
                alert("Validate Success");
            }, 
            onError:function(){ //验证失败后的回调函数
                alert("Validate Error");
            } 
        });
        
        $('#uname')
        .formValidator({
            ValidatorGroup : '1', //验证组为1 
            onEmpty : '用户名不能为空', //提示用户名不能为空
            onShow : "", 
            onFocus : '用户名必须为1到12位的数字或字母',//表单元素获得焦点的时候提示应输入的格式
            onCorrect : '用户名输入正确' //输入正确的提示
            })
        .regexValidator({
            regExp : '^[0-9a-zA-Z]{1,12}$', //验证表单输入的正则表达式
            onError : '用户名格式有误,请从新输入' //输入错误的提示
        })
        .compareValidator({
            desID:"uname2", //要比较控件的ID。要跟源目标进行比较的目标ID
            operateor:"=", //比较符号,一共有如下几种:=、!=、>、>=、<、<=
            dataType:"string", //数据类型。目前只支持4种:"string","number","datetime","date"
            onError:"用户名输入不一致", //发生错误的提示。
        });
    });  
</script>
</head>
<body>
    <form name="form" id="form" method="post" action="">  
        <input name="uname" id="uname" type="text" style="display: inline-block;width: 200px" />  
        <span class="onError" id="unameTip" style="display: inline-block;width: 400px"></span>  
        <input name="uname2" id="uname2" type="text" style="display: inline-block;width: 200px" />  
    </form>   
</body>
</html>

相关文章

  • React配置过程中用到的插件汇总

    ●react插件●react-dom插件●react-router插件●react-redux插件●babel插件...

  • iOS项目实战02

    修改插件:查找插件 -> 插件路径(不能记) -> Xcode插件开发 -> 查看插件代码 -> 搜索instal...

  • 5.文档 - gitbook - 插件

    参考 官方插件 重点参考 GitBook 插件 常用插件 配置插件 到 官方插件 上找合适的插件 在配置文件中安装...

  • FCPX系列的插件怎么安装导入?Final cut pro x插

    fcpx插件怎么安装? Fcpx插件怎么解压安装?fcpx插件怎么卸载?fcpx插件怎么添加?fcpx lut插件...

  • Cordova 插件更新

    查看项目插件列表 移除插件 添加插件

  • IDEA破解

    配置插件 配置仓库 下载插件 使用插件

  • Cordova 本地插件

    1 安装插件环境 2 创建插件 例子 添加配置 进入插件文件夹下初始化插件 插件使用

  • Webpack入门之plugins篇

    入门篇主要先学学插件的使用,不涉及自定义插件。 首先 插件分为:内置插件和外部插件。 内置插件例如BannerPl...

  • Gradle中插件的使用

    目录 插件的类型 插件的类型分为:1.脚本插件2.二进制插件 插件的使用 1.脚本插件的使用 脚本插件的使用方法如...

  • 更多关于CocoaScript

    目录 入门插件基础您的第一个插件开发环境调试Action API发布插件 高级插件捆绑插件,脚本和命令插件位置更多...

网友评论

      本文标题:插件

      本文链接:https://www.haomeiwen.com/subject/hhyweftx.html