利用Jquery + Css,改善驗證控制項的顯示

利用Jquery + Css,改善驗證控制項的顯示

微軟內建的驗證控制項,顯示的方式真的不是很明顯,所以常常會有使用者抱怨,沒注意到錯誤提示,

上網Google一下,找到國外有個很簡單方便的方式,所以筆記一下,也希望對別人有幫助。

來源:http://www.nobdy.com/asp-net/asp-net-validators-pimped-using-jquery/

 

我們要達到的目的如下:

image

 

首先增加CSS

/*驗正控制項CSS*/
   .validation-error *{color:Red;}
   .validation-error label{color:Red;}
   .validation-error input{border: 1px solid #CC0000; background: #FCF0EF url(../../img/error-bg.png) repeat-x top; color: #CC0000; margin-right: 5px;}
   .error-message{display:block; background:url(../../img/icon_error.png) no-repeat;margin:5px; padding-left:20px; }      
 

增加 jquery

$(document).ready(function () {
    $('.causeValidation').live('click',function () {
        $('.error-message').remove();
        var grp = $(this).parent().attr("class");
        $.each(Page_Validators, function () {
            if (this.validationGroup == grp || grp == "") {
                this.style.display = 'none';
                var $control = $('#' + this.controltovalidate);
                if (!this.isvalid) {
                    $control.parent().addClass('validation-error');
                    $control.parent().append('<SPAN class=error-message>' + this.errormessage + '</SPAN>');
                    $control.focus(function () {
                        $('.error-message', $(this).parent()).remove();
                        $(this).parent().removeClass('validation-error');
                    });
                }
            }
        });
    });
});  

觸發驗證的按鈕,將其CssClass設定為 "causeValidation'"

並用<span class=”驗證群組”></span>將按鈕包起來

<SPAN class="V1">  
<asp:Button ID="BTN_Next1" runat="server" Font-Size="Medium" Text="下一步" 
    ValidationGroup="V1" CssClass="causeValidation" /></SPAN>

這樣就大功告成囉!