小修改,让mvc的验证锦上添点花(1)

首先,mvc的客户端验证用的是jquery.validate.js, jquery.validate自己已经提供了很好的扩展功能,经过简单点配置就能够作得更好看些.html

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

此次,咱们经过对jquery.validate.unobtrusive.js作一点小小的修改,让这个验证效果看起来更漂亮一点.mvc

同时也让你们对jquery.validate.unobtrusive.js了解的更多一点,但愿可以给你们起到触类旁通的效果.app

 

咱们先来看看修改后的效果:ide

1.初始状态ui

2.验证失败this

3.验证成功url

 

 

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

代码以下:code

 .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)"

相关文章
相关标签/搜索