2010-08-06 28 views
2

後,我有以下asp.net代碼:顯示「通過」的圖像或文字驗證一個asp.net(REQ場。)驗證

<asp:TextBox CssClass="mf" runat="server" ID="mail1" Width="270" /> 
<asp:RequiredFieldValidator ID="rfv1" 
          runat="server" 
          ControlToValidate="mail1" 
          Display="Dynamic" /> 

現在我想顯示的圖像(或文字),如果驗證通過即時(無回發)

一個jQuery解決方案對我來說也很好,但是如果JavaScript被禁用,那也不會那麼安全。

+0

JavaScript禁用時不能有這樣的客戶端效果 – citronas 2010-08-06 14:54:32

+0

好的,但我怎樣才能使它啓用JavaScript和asp.net驗證器?或者是不可能的,或者是一個純JavaScript解決方案推薦? – 2010-08-06 15:16:50

回答

2

不依賴於外部框架,您可以利用ASP.Net客戶端驗證框架來處理擴展/高級功能。通過這種方式,您正在使用框架,增強它而不是替換它。

JavaScript的一小部分就是啓用所需行爲所需的一切。

<asp:TextBox CssClass="mf" runat="server" ID="mail1" Width="270" OnChange="showValidationImage();" /> 
<asp:RequiredFieldValidator ID="rfv1" 
         runat="server" 
         ControlToValidate="mail1" ClientIDMode="Static" 
         Display="Dynamic" > 
    <img src="../Image/fail.jpg" /> 
</asp:RequiredFieldValidator> 
<img id="imgPass" src="../Image/pass.jpg" style="visibility:hidden" /> 
<script language="javascript"> 
    // This function will be called whenever the textbox changes 
    // and effectively hide or show the image based on the state of 
    // the client side validation. 
    function showValidationImage() { 
     if (typeof (Page_Validators) == "undefined") return; 

     // isvalid is a property that is part of the ASP.Net 
     // client side validation framework 
     imgPass.style.visibility = rfv1.isvalid ? "visible" : "hidden"; 
    } 
</script> 
<br /> 
<asp:Button ID="btnSubmit" runat="server" Text="Submit" /> 

注意這裏我使用ASP.Net 4的功能,以的ClientIDMode =「靜」,如果你不使用.NET 4中,那麼你就需要使用標準的<%= rfv1.ClientID %>服務器端包括獲得在您的腳本中的客戶端ID。

+0

你好Josh,我知道顯示動態屬性,但是我無法顯示通過驗證規則的'通過'圖像 – 2010-08-09 07:50:34

+0

對不起那個男人......當我寫下我的回答時,我一定很累:)無論如何,我已經更新了答案,以反映你實際要求的內容。 – Josh 2010-08-09 17:13:27

+0

謝謝喬希,請看看它! :) – 2010-08-16 08:19:50