zoukankan      html  css  js  c++  java
  • jQuery formValidator表单验证插件常见问题

    1.    如何实现一个控件,根据不同的情况,实现不同的控制?

    2.    一个页面上我有几个tab页,如何实现每个Tab页上的控件单独校验?

    3.    我采用的页面上文字问题的方式,点提交的时候,有校验未通过的,除了文字提示外,还可以再弹出窗口提示吗?

    4.    所有校验通过后,我还要再做别的判断可以吗?我自己的判断没有通过可以中断提交吗?

    5.    我有一组的checkbox(radiobutton)如何设置校验?

    6.    我有2个表单元素,任意一个元素输入东西就算验证通过,如何写代码?比如要求输入中文名字和英文名字任意一个即算校验通过。

    7.    一个表单元素校验通过了,但是我想额外再进行其它的校验,出错要自定义错误,如何写代码?

    8.    如何让赋了初始值的表单元素默认校验通过?

    9.    ajaxValidator校验,离开焦点的时候,马上点击提交按钮,这个时候服务器还没有返回怎么办?

    10.  我想在表单没有校验通过的时候,弹出第一个没有校验通过元素的错误信息,如何实现?

    11.  刚打开页面的时候我不想显示onshow的状态,如何实现这种功能?

    12.  在A条件下,某个控件是不检验的,在B条件下,这个控件又是检验的,如何实现?

    13.  inputValidator校验方式,我想进行更精确的提示,如何写?也就是比最小值小,比最大值大,分开提示。

    14.  如何实现自动注册pageIsValid函数?每次都要自己写太麻烦了。

    15.  在使用ajaxValidator的时候,服务器端无法获得控件的值,每次都是空,怎么回事?

    16.  自动构建提示层功能开启后,发现定位不准确这么办?

    17.  为什么报$.formValidator无效的脚本错误。

    18.  inputValidator除了判断长度外,能不能再对左边空格、右边空格进行判断?

    19.  inputValidator验证长度的时候,能把全角字符当做一个长度来验证吗?

    20.  用户输入正确才能离开焦点,如何设置?

    21.  如何设置成调试模式?即验证成功后,不提交数据。

    1. 如何实现一个控件,根据不同的情况,实现不同的控制?

        你只需要在你的不同种情况下,重新设置你的【一行代码】。例如:

    if(条件)
            $("#id").formValidator({配置1}).inputValidator({配1});
    else
            $("#id").formValidator({配置2}).inputValidator({配2});

    2. 一个页面上我有几个tab页,如何实现每个Tab页上的控件单独校验?

        每个Tab页上需要校验的控件,你在写【一行代码】的时候,显式的声明组号
        $.formValidator.initConfig({validatorgroup:"1"});
        $.formValidator.initConfig({validatorgroup:"2"});
        再在formValidator里显式的声明组号validatorgroup,例如:
        $("#id").formValidator({validatorgroup:"2"...}).inputValidator({...});

    3. 我采用的页面上文字问题的方式,点提交的时候,有校验未通过的,除了文字提示外,还可以再弹出窗口提示吗?

    这个问题很简单,你只要设置改组的全局配置,
    jQuery.formValidator.initConfig({onerror:function(){alert("有部分校验没有通过,请看页面具体提示");}})

    4. 所有校验通过后,我还要再做别的判断可以吗?我自己的判断没有通过可以中断提交吗?

    同样很简单,你页只需设置该组的全局配置,
    jQuery.formValidator.initConfig({onsuccess:function()
    {
            if(你的额外判断失败)
                    return false;
            else
                    return true;
    }})

    5. 我有一组的checkboxradiobutton)如何设置校验?

        你只需在该组的第一个checkbox上设置校验信息即可,具体请参考demo1里的范例
    1、如果你该组的第一个控件的ID ,你可以这么写:
    $("sex_1").inputValidator({...})
    2、如果你只知道该组的name,你可以这么写:
    $("input:check[@name='sex']").inputValidator({...})

    6. 我有2个表单元素,任意一个元素输入东西就算验证通过,如何写代码?比如要求输入中文名字和英文名字任意一个即算校验通过。

        $("#name_cn,#name_en").formValidator({tipid:"IMTip",onshow:"请填写任一种名字)",onfocus:"请请填写任一种名字。",oncorrect:"输入正确!"}).functionValidator({fun:allEmpty});

    function allEmpty(val,elem) 

    return ($("#name_cn").val()=="" && $("#name_cn").val()=="")?'如果想和客户在线洽谈,请至少填写一种IM软件帐号!':true; 
    }

    7. 一个校验组校验通过了,但是我想额外再进行其它校验,出错要自定义错误,如何写代码?

    $("#ewjy").formValidator({
        onshow:"无论你输入什么,都会提示你额外校验出错,错误信息自定义",
        onfocus:"至少输入一个字符",
        oncorrect:"你怎么可能输入正确了,难道是bug?",
        ).inputValidator({min:1,onerror:"这里至少要一个字符,请确认"}).functionValidator({
    if(额外校验失败) 
              return "额外校验失败的错误信息";
    else 
              return true;
    });

    8. 如何让赋了初始值的表单元素默认校验通过?

        $("#xueli").formValidator({onshow:"请选择你的学历",onfocus:"学历必须选择",oncorrect:"谢谢你的配合",defaultvalue:"b"}).inputValidator({onerror: "你是不是忘记选择学历了!"}).DefaultPassed();

    9. ajaxValidator校验,离开焦点马上点击提交按钮,这个时候如果服务器还没有返回数据怎么办?

        新版本的ajaxValidator提供了一个配置参数buttons(你点提交的按钮(组)jQuery对象),如果你触发了ajax校验,buttons里对应的按钮就会灰掉,一直等待服务器返回数据为止。例如:
    $("#test1").formValidator({...}).inputValidator({...}).ajaxValidator({
        url : "Default.aspx",
        datatype : "json",
        success : function(data){...},
        buttons: $("#button_id"),
        error: function(){alert("服务器没有返回数据,可能服务器忙,请重试");},
        onerror : "该用户名不可用,请更换用户名重新",
        onwait : "正在对用户名进行合法性校验,请稍候..."
    });

    10. 我想在表单没有校验通过的时候,弹出第一个没有校验通过元素的错误信息,如何实现?

        onerror有2个参数:第一个“第一个没有校验通过元素的错误信息”;第二个“第一个没有校验通过元素对象”;代码如下设置:
    jQuery.formValidator.initConfig({onerror:function(msg){alert(msg);}})

    11. 刚打开页面的时候我不想显示onshow的状态,如何实现这种功能?

        如果onshow,onfocus,oncorrect,onerror的内容为空,将不显示该提示内容

    12. A条件下,某个控件是不检验的,在B条件下,这个控件又是检验的,如何实现?

        if(A条件)
        {
            $("#sfzh").attr("disabled",true).unFormValidator(true); //解除校验
        }
        else
        {
            $("#sfzh").attr("disabled",false).unFormValidator(false);//恢复校验
        }

    13. inputValidator校验方式,我想进行更精确的提示,如何写?

        inputValidator校验方式提供了2个属性,分别为onerrormin和onerrormax.
        onerrormin:当用户输入的值比min属性小的时候的错误提示
        onerrormax:当用户输入的值比max属性大的时候的错误提示
        原onerror属性:当onerrormin或onerrormax不存在的时候,用该属性来提示错误

    14. 如何实现自动注册pageIsValid函数?每次都要自己写太麻烦了?

        自动注册$.formValidator.pageIsValid()函数,为initConfig添加formid属性,表示表单ID号。
        如果formid为空,必须按照老的方法自行判断。
        适用环境:如果你只有一个校验组,而且利用表单的submit来提交,你可以配置这个formid参数。
        例如:$.formValidator.initConfig({formid:"form1",onerror:function(msg){alert(msg)}});

    15. 在使用ajaxValidator的时候,服务器端无法获得控件的值,每次都是空,怎么回事?

     

        请看更新记录
        2008/1/22 23:58:57 jQuery formValidator 1.1.2 ver
        1、为AjaxValidator添加一个addidvalue属性(是否自动添加id和值到url参数后面)
        为了修复AjaxValidator在配置信息的时候,取不到运行时候值的bug
        插件将自动在url后面自动添加,形式为"id=value"的网页参数
        在服务器端,你可以通过Request.querystring["id"]来取值
        具体演示请看demo1里的用户名输入和Default.aspx

        2008/3/14 12:16:00 jQuery formValidator 2.2 ver
        2、AjaxValidator校验方式,将自动再增加一个参数到请求的地址后面"clientid=触发校验的表单ID"。
        如果你是一个jQuery集合做校验,如果用到了AjaxValidator校验方式,在服务器端,你无法知道触发校验的是哪个     表单元素,所以在请求的地址后面追加"clientid=触发校验的表单ID"。

        你说的问题就是"在配置信息的时候,取不到运行时候值的bug",你可以参考demo1里用户名的写法

    16. 自动构建提示层功能开启后,发现定位不准确这么办?

        为formValidator函数添加属性:tipcss,用于定位自动提示层。该属性为标准的css属性申明。
        例如: tipcss:{"top":"1px","left":"20px"}。请注意属性名和值都必须带引号

        开启自动构建提示层的情况下,原tipid属性表示相对定位的目标控件的ID号
        关闭自动构建提示层的情况下,原tipid属性的意义不变,表示提示层的ID号

    17. 为什么报$.formValidator无效的脚本错误?

    请先检查是否正确引用了插件的脚本

    1. 插件脚本是UTF-8编码的,如果你的页面用其它的编码方式,则在引用脚本的时候要显式指明脚本编码方式
      <script src="formValidator.js" type="text/javascript" charset="UTF-8" ></script>

    18. inputValidator除了判断长度外,能不能再对左边空格、右边空格进行判断?

    在新的版本3.1里,为inputValidator设置了empty属性,用于设置控件文本值是否允许两边为空

    1. 看参看demo1里的密码控件。

      $("#password1").formValidator({onshow:"请输入密码",onfocus:"密码不能为空",oncorrect:"密码合法"}).inputValidator({min:1,empty:{leftempty:false,rightempty:false,emptyerror:"密码两边不能有空符号"},onerror:"密码不能为空,请确认"});

    19. inputValidator验证长度的时候,能把全角字符当做一个长度来验证吗?

    initConfig有个属性:wideword,表示是否把全角字符当做2个长度处理,默认为true。

     

    20. 用户输入正确才能离开焦点,如何设置?

    为initConfig增加forcevalid属性;formValidator增加forcevalid属性,表示是否一直输入正确为止才允许离开焦点。 initConfig的forcevalid优先等级最高,即全局配置;而formValidator里的forcevalid是局部设置。
    请见demo1邮箱字段的验证。

    21. 如何设置成调试模式?即验证成功后,不提交数据。

    initConfig里有个属性叫debug,默认false。如果你要调试代码,你可以设置debug为true,校验成功了,也不会提交表单。

  • 相关阅读:
    Atitit sql计划任务与查询优化器统计信息模块
    Atitit  数据库的事件机制触发器与定时任务attilax总结
    Atitit 图像处理知识点体系知识图谱 路线图attilax总结 v4 qcb.xlsx
    Atitit 图像处理 深刻理解梯度原理计算.v1 qc8
    Atiti 数据库系统原理 与数据库方面的书籍 attilax总结 v3 .docx
    Atitit Mysql查询优化器 存取类型 范围存取类型 索引存取类型 AND or的分析
    Atitit View事件分发机制
    Atitit 基于sql编程语言的oo面向对象大规模应用解决方案attilax总结
    Atitti 存储引擎支持的国内点与特性attilax总结
    Atitit 深入理解软件的本质 attilax总结 软件三原则"三次原则"是DRY原则和YAGNI原则的折
  • 原文地址:https://www.cnblogs.com/shenyixin/p/5054485.html
Copyright © 2011-2022 走看看