zoukankan      html  css  js  c++  java
  • 小修改,让mvc的验证锦上添点花(1)

    首先,mvc的客户端验证用的是jquery.validate.js, jquery.validate本身已经提供了很好的扩展功能,通过简单点配置就可以做得更好看些.

    而Microsoft通过jquery.validate.unobtrusive.js然后做了封装,让它高度的集成到了MVC中.

    这次,我们通过对jquery.validate.unobtrusive.js做一点小小的修改,让这个验证效果看起来更漂亮一点.

    同时也让大家对jquery.validate.unobtrusive.js了解的更多一点,希望能够给大家起到举一反三的效果.

    我们先来看看修改后的效果:

    1.初始状态

    2.验证失败

    3.验证成功

    1.首先对CSS做一点点小修改(注意红色字部分),

    代码如下:

     .field-validation-error {
        color: #f00;
        background: url(onError.gif) left center no-repeat;
        padding-left: 20px;
    }

    .field-validation-success {
        display: inline;
        padding-left: 20px;
        background: url(onCorrect.gif) left center no-repeat;
    }

     2.修改jquery.validate.unobtrusive.js

    在onError方法中:

    container.removeClass("field-validation-valid").addClass("field-validation-error");

    改成

    container.removeClass("field-validation-success field-validation-valid").addClass("field-validation-error");

        function onError(error, inputElement) {  // 'this' is the form element
            var container = $(this).find("[data-valmsg-for='" + escapeAttributeValue(inputElement[0].name) + "']"),
                replaceAttrValue = container.attr("data-valmsg-replace"),
                replace = replaceAttrValue ? $.parseJSON(replaceAttrValue) !== false : null;
    
            container.removeClass("field-validation-success field-validation-valid").addClass("field-validation-error");
            error.data("unobtrusiveContainer", container);
    
            if (replace) {
                container.empty();
                error.removeClass("input-validation-error").appendTo(container);
            }
            else {
                error.hide();
            }
        }

    在onSuccess方法中:

    container.addClass("field-validation-valid").removeClass("field-validation-error");

    改成

    container.addClass("field-validation-success").removeClass("field-validation-error field-validation-valid");

        function onSuccess(error) {  // 'this' is the form element
            var container = error.data("unobtrusiveContainer"),
                replaceAttrValue = container.attr("data-valmsg-replace"),
                replace = replaceAttrValue ? $.parseJSON(replaceAttrValue) : null;
    
            if (container) {
                container.addClass("field-validation-success").removeClass("field-validation-error field-validation-valid");
                error.removeData("unobtrusiveContainer");
    
                if (replace) {
                    container.empty();
                }
            }
        }

    3.OK,搞定.

    请关注"小修改,让mvc的验证锦上添点花(2)"

  • 相关阅读:
    【UML】基本介绍与类图(依赖、泛化、实现、关联、聚合、组合关系)
    【Java】集合综合案例
    【Java】集合框架(List Set Map)
    【Java】面向对象
    【Java】单例模式(Singleton)
    正则表达式(括号)、[中括号]、{大括号}的区别
    js正则表单验证汇总,邮箱验证,日期验证,电话号码验证,url验证,信用卡验证,qq验证
    网页倒计时,动态显示"××年还剩××天××时××分××秒"
    判断鼠标是否在指定区域代码
    鼠标左中右键返回值的兼容性问题
  • 原文地址:https://www.cnblogs.com/builderman/p/3318252.html
Copyright © 2011-2022 走看看