解决jquery.validate.js的验证bug

版本提示:jq为1.4.4, jquery.validate 为jQuery validation plug-in 1.7

问题:

a.选填选项,如邮箱设置格式验证,那么情况输入框,验证label变成空白的【原来的默认提示没了】

b.必填选项,如手机号码直接复制进去,格式是对的,验证label是不变的

 

1.母版页

   $(function () {
           $.validator.setDefaults({
                errorClass: "tip-error",
                errorPlacement: function (error, element) {
                    error.prependTo(element.parents("td").next());
                    objError.removeClass("btn_infomust");
                    objError.html(error);
                },
                success: function (element) {

                    element.html("正确").addClass("tip-success");
                }
            });
});

2.表单页代码示例

<tr>
                    <th scope="row">
                        手机号码:
                    </th>
                    <td>
                        @Html.TextBoxFor(t => t.PhoneNO, new { @Style = "width:200px", maxlength = "30" })
                    </td>
                    <td class="slight">
                        <label class="btn-infomust">必填项。</label>
                    </td>
                </tr>
                <tr>
                    <th scope="row">
                        邮箱地址:
                    </th>
                    <td>
                        @Html.TextBoxFor(t => t.Email, new { @Style = "width:200px", maxlength = "30" })
                    </td>
                    <td class="slight">
                        <span class="btn-info">选填项。</span>
                    </td>
                </tr>

 

3.jquery.validate.js文件代码

解决:注意代码是写死的,需根据自己的去改

 //360行前后
if(element.value==""){if($(element).rules().required != true&&$(element).rules().required != false){$(element).parents("td").next("td").html('<label class="btn-info">选填项。</label>');}}

  element: function (element) {
        //规则required不存在时,则还原默认提示
        if (element.value == "") {
            if ($(element).rules().required != true && $(element).rules().required != false) {
                $(element).parents("td").next("td").html('<label class="btn-info">选填项。</label>');
            }
        }

      return result;
    }
    //670行前后
  showLabel: function (element, message) {
        //手工替换label
        $(element).parents("td").next("td").html(label);

        console.log(label);
        this.toShow = this.toShow.add(label);
    },

 

版本提示:jq为1.9.1, jquery.validate 为jQuery Validation Plugin 1.9.0,jquery.validate.unobtrusive.js,使用Model验证

问题:

当第一次页面加载时,直接删除必填字段的文本框内容,不会提示错误信息【猜测:未初始化】

代码:

$.extend($.validator, {
        defaults: {
            onfocusout: function (element, event) {
                if (element.value == "") {//此部分为修改的代码
                    if ($(element).rules().required == true) {
                        $(element).valid();
                    }
                }

                if (!this.checkable(element) && (element.name in this.submitted || !this.optional(element))) {
                    this.element(element);
                }
            },
        }
}    

 

时间: 2024-09-28 05:18:53

解决jquery.validate.js的验证bug的相关文章

表单验证代码实例:jquery.validate.js表单验证插件

文章简介:很好用的JQuery表单验证插件--jquery.validate.js. jquery.validate.js是JQuery旗下的一个验证插件,借助JQuery的优势,我们可以迅速验证一些常见的输入,并且可以自己扩充自己的验证方法.使用前请先下载必要的JQuery插件:jquery-1.4.2.min.js和jquery.validate.min.js. 下面演示如何使用jquery.validate.js插件进行表单的验证. 这是HTML表单:<form id="regFro

jquery表单验证插件(jquery.validate.js)的3种使用方式

这篇文章主要介绍了jquery表单验证插件(jquery.validate.js)的3种使用方式,本文用详细的代码实例讲解jquery表单验证插件的使用,需要的朋友可以参考下     jquery 验证非常简单,下面总结常用的三种方式: 第一种方式:也是比较标准的方式: 首先引入jquery 插件和 jquery 验证插件: 第一步:引入插件 代码如下: <script type="text/javascript" src="js/jquery-1.6.1.min.js

jquery.validate.js 验证触发时机修改

问题描述 请问如何修改jquery.validate.js 进行触发验证事件的时机,期望可以为form方式的也可以是失去焦点时触发,期望能给一个demo.谢谢 解决方案 当输入错误时,失去焦点时会触发的.<script>jQuery.validator.addMethod("isTel", function(value, element) {var tel = /^d{3,4}-?d{7,9}$/; // 电话号码格式010-12345678return this.opti

jquery validate.js表单验证的基本用法入门_jquery

这里转载一篇前辈写的文章,在我自己的理解上修改了一下,仅作记录. 先贴一个国内某大公司的代码: 复制代码 代码如下: <script type="text/javascript"> function lang(key) { mylang = { 'ls_input_myb': '请输入您的账户', 'ls_myb_email': '漫游币账户为邮箱地址', 'ls_login_password': '请输入您的登录密码', 'ls_password_length': '密码

jquery表单验证插件(jquery.validate.js)的3种使用方式_jquery

jquery  验证非常简单,下面总结常用的三种方式: 第一种方式:也是比较标准的方式: 首先引入jquery  插件和 jquery 验证插件: 第一步:引入插件 复制代码 代码如下: <script type="text/javascript" src="js/jquery-1.6.1.min.js"></script> <script type="text/javascript" src="js/jq

快速学习jQuery插件 jquery.validate.js表单验证插件使用方法_jquery

最常使用JavaScript的场合就是表单的验证,而jQuery作为一个优秀的JavaScript库,也提供了一个优秀的表单验证插件----Validation.Validation是历史最悠久的jQuery插件之一,经过了全球范围内不同项目的验证,并得到了许多Web开发者的好评.作为一个标准的验证方法库,Validation拥有如下特点: 1.内置验证规则: 拥有必填.数字.Email.URL和信用卡号码等19类内置验证规则 2.自定义验证规则: 可以很方便地自定义验证规则 3.简单强大的验证

jquery.validate.js表单验证插件的用法和入门范例

网上介绍的jquery.validate大部门只是介绍它的api和用法,没有一个完整的入门范例,有时候看半天才知道该怎么下手.因此为了快速了解学习,我弄了一个快速入门范例,虽然用的知识点不多,写的也不是很好,但是可以快速的入手. 以下是参考源码(下面有源码网上可以下载到在此不再提供): <html> <head>     <meta http-equiv="Content-Type" content="text/html; charset=utf

使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由_jquery

主要理由有以下几点: 1.拖控件太麻烦,这个是微软控件的常用方式,你要使用一个控件你得从工具栏中拖到页面里(当然你也可以不拖手写). 2.必须指定验证对象,验证控件与其他textbox,dropdownlist控件不同的是它是验证其他控件的输入是否有效的,所以必须指定所验证的对象. 3.影响整个页面美观,像一些管理系统总是需要进行大量的用户输入验证,所以就可能导致一个页面上有几十个验证控件严重影响了原来页面里的东西,看起来十分不舒服. 4.ajax验证不方便,现在的系统越来越注重客户的用户体验,

功能强大的jquery.validate表单验证插件_jquery

本文实例为大家分享了jquery.validate表单验证的使用方法,供大家参考,具体内容如下 1 .表单验证的准备工作 在开启长篇大论之前,首先将表单验证的效果展示给大家. 1.点击表单项,显示帮助提示   2.鼠标离开表单项时,开始校验元素 3.鼠标离开后的正确.错误提示及鼠标移入时的帮助提醒 对于初学者而言,html表单验证是一项极其琐碎的事情.要做好表单验证,需要准备以下基本要素: 1).html表单结构:包含需要校验的表单元素: 2).js逻辑控制:在需要校验的表单元素上绑定事件,如点