[習題]驗證控制項(Custom Validator)的 ClientValidationFunction屬性 -- 前端(Client端、瀏覽器端)驗證,

摘要:[習題]驗證控制項(Custom Validator)的 ClientValidationFunction屬性




讀者來信詢問,我順便補充書本「上集(ASP.NET專題實務)」的 第四章  Ch. 4-5

ASP.NET提供的控制項,很多屬性不可能逐一地為大家介紹一遍。
如果遇見新的屬性,最好的解答往往都是MSDN官方網站

http://msdn.microsoft.com/zh-tw/library/system.web.ui.webcontrols.customvalidator.clientvalidationfunction%28v=VS.100%29.aspx

我也發現很多書本的範例,大多衍生自此。

 



======================================================================



Custom Validator的入門介紹,已經在書本上集 Ch. 4-5 介紹過了。



目前介紹的ClientValidationFunction 屬性,就是先在「前端(Client端、瀏覽器端)」以進行驗證,

      如果通過了,就可以在「後端(Server端、ASP.NET後置程式碼)」進行第二次驗證

      如果沒有通過,那在 "前端" 就會被阻擋。

 


 
 HTML畫面如下,

我們搭配一個簡單的 JavaScript來驗證輸入的數值是否為偶數?
 

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <!-- 重點在此!!-->
    <script language="javascript" type="text/javascript">
        function IsEven(source, args) {
            if (args.Value % 2 == 0) {
                args.IsValid = true;
                window.alert("驗證成功,偶數!");
            }
            else {
                args.IsValid = false;
                window.alert("驗證失敗,奇數!(無法被二整除)");
            }
                
            return;
        }
    </script>



</head>
<body>
    <form id="form1" runat="server">
    <div>
        請輸入偶數:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

        <asp:Button ID="Button1" runat="server" Text="Button" />

        <asp:CustomValidator ID="CustomValidator1" runat="server"
            ClientValidationFunction="IsEven"
            ErrorMessage="CustomValidator -- 不是偶數!!"
            ForeColor="Red"
            ControlToValidate="TextBox1"></asp:CustomValidator>
    
    </div>
    </form>
</body>
</html>

 
 我們可以看見 JavaScript裡面的 args.Value
 就是「被驗證的那個 TextBox控制項的 "輸入值"

 

上面的程式就能正確執行囉,您可以先試試看。

 

完成上面的成果之後,您可以撰寫以下的後置程式碼。

重新執行一次,就能發覺「前端驗證成功,後端驗證才會啟動。」

 

所以這個範例,您必須動手作兩次,去體會他的差異。

 


======================================================================

後置程式碼如下:

Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate
        '== Server端也需要作驗證,這樣才安全!! ==

        '== 重  點!! ==
        '== (1). 前端的 JavaScript驗證通過,才會進入這裡(後端的驗證)。
        '== (2). 被驗證的「輸入值」,就是 args.Value。


        If (CInt(args.Value) Mod 2) = 0 Then
            args.IsValid = True
            Response.Write("驗證成功,偶數。")
        Else
            args.IsValid = False
            Response.Write("驗證失敗,奇數!!!")
        End If
End Sub
 

 

===  最後要打一下廣告  ==========================

 

1.  如果您覺得我的描述、寫作方式,符合您的胃口。

2.  如果您看完以後,知道我寫書、介紹一些控制項或是技術........不是「混過去」、「帶過去」而已,而是真真確確地蒐集 "有用的範例",讓您學得更深入!

3.  如果您覺得:我出完書以後,還不定期地提供售後服務,提供補充教材......這樣的互動是 "良性"的,是值得鼓勵的。......已經推出 兩百多篇 補充範例了

4. 如果您(尤其是學生)真的想把基礎學好,而不是 "混"過這一門課就好、而不是寫個(畢業專題的)屍體出來交差(能畢業就好).....那麼.......

 

請您購買下面的書籍,

東西多到您學不完

上 / 下兩集,兩本書的厚度(我蒐集的各種範例)將近 兩千頁 !!......絕對不會讓您失望

 

 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

線上課程,遠距教學 (Web Form 49hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程,遠距教學 (ASP.NET MVC 75hr)  https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab

ASP.NET MVC線上課程 第一天 免費看 (5.5小時) 

寫信給我,不要私訊 --  mis2000lab (at) yahoo.com.台灣  或  school (at) mis2000lab.net


ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。 

................   facebook社團   https://www.facebook.com/mis2000lab   ......................

................  YouTube (ASP.NET) 線上教學影片  https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/

 

Blog文章 "附的範例" 無法下載,請看 這裡 ...... https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download

請看我們的「售後服務」範圍(嚴格認定)

......................................................................................................................................................

...................................................................................................................................................... 

[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講

事先錄製好的影片,並非上課時側錄!   觀看影片時,有如我「一對一」跟您面對面講課

 

ASP.NET MVC 5 線上教學

累積時數約 75小時...... 第一天(5.5小時)完整內容,"免費"讓您評估