解决jquery.validate.js的验证bug

简介: 版本提示:jq为1.4.4, jquery.validate 为jQuery validation plug-in 1.7 问题: a.选填选项,如邮箱设置格式验证,那么情况输入框,验证label变成空白的【原来的默认提示没了】 b.

版本提示: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);
                }
            },
        }
}    

 

相关文章
|
7月前
|
JSON 算法 安全
Nest.js JWT 验证授权管理
Nest.js JWT 验证授权管理
161 3
Nest.js JWT 验证授权管理
|
7月前
egg.js 24.18参数验证
egg.js 24.18参数验证
79 0
egg.js 24.18参数验证
|
3月前
|
移动开发 JavaScript 前端开发
JavaScript:验证输入
【9月更文挑战第02天】
47 6
|
2月前
|
JavaScript 数据安全/隐私保护
jQuery Password Validation(密码验证)
jQuery Password Validation(密码验证)
32 3
|
3月前
|
JavaScript 前端开发 API
JavaScript 验证 API
JavaScript 验证 API
34 2
|
4月前
|
编解码 JavaScript 前端开发
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
JS逆向浏览器脱环境专题:事件学习和编写、DOM和BOM结构、指纹验证排查、代理自吐环境通杀环境检测、脱环境框架、脱环境插件解决
137 1
|
4月前
|
前端开发 微服务 API
微服务浪潮下的JSF革新:如何在分散式架构中构建统一而强大的Web界面
【8月更文挑战第31天】随着微服务架构的兴起,企业将应用拆分成小型、独立的服务以提高系统可维护性和可扩展性。本文探讨如何在微服务架构下构建和部署JavaServer Faces (JSF) 应用,通过RESTful服务实现前后端分离,提升灵活性和适应性。
65 0
|
4月前
|
存储 JavaScript 前端开发
js登陆验证
js登陆验证
41 0
|
4月前
|
JavaScript 前端开发
在js中正则表达式验证小时分钟,将输入的字符串转换为对应的小时和分钟
这篇文章介绍了如何在JavaScript中使用正则表达式来验证时间字符串的格式(小时和分钟),并提供了将时间字符串转换为JavaScript Date对象的示例代码及其测试结果。
|
4月前
|
JavaScript 前端开发 API
vue中将验证表单输入框的方法写在一个js文件中(表达式验证邮箱、身份证、号码、两次输入的密码是否一致)
这篇文章介绍了如何在Vue框架中将表单输入验证逻辑封装到一个JavaScript文件中,并通过正则表达式验证邮箱、身份证、手机号等信息,同时确保两次密码输入的一致性。