簡體   English   中英

Email 驗證 ASP.NET WebForms 邊框

[英]Email Validation ASP.NET WebForms Border

我有文本框和兩個驗證(RequiredFieldValidator 和 RegularExpressionValidator)如下

<asp:TextBox runat="server" ID="txtEmailFrom" CssClass="form-control"></asp:TextBox>
<asp:RequiredFieldValidator 
    ID="RequiredFieldValidator3" 
    runat="server" 
    ErrorMessage="Field Required" 
    ControlToValidate="txtEmailFrom" 
    Display="Dynamic"
    ForeColor="Red"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator 
    ID="regexEmailValid" 
    runat="server" 
    ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" 
    ControlToValidate="txtEmailFrom" 
    ForeColor="Red"
    Display="Dynamic"
    ErrorMessage="Invalid Email Format"></asp:RegularExpressionValidator>

但是由於錯誤,我需要用紅色突出顯示字段的邊框。 為此,編寫了以下代碼:

function ValidatorUpdateDisplay(val) {
        if (typeof (val.display) == "string") {
            if (val.display == "None") {
                return;
            }
            if (val.display == "Dynamic") {
                val.style.display = val.isvalid ? "none" : "inline";
                return;
            }
        }
        val.style.visibility = val.isvalid ? "hidden" : "visible";
        if (val.isvalid) {
            document.getElementById(val.controltovalidate).style.border = '1px solid #333';
        }
        else {
            document.getElementById(val.controltovalidate).style.border = '1px solid red';
        }
    }

function 僅與 RequiredFieldValidatior 一起使用。 我需要同時使用 (RequiredFieldValidator & RegularExpressionValidator) 驗證。

先感謝您。

也許你可以在你的 javascript function 中設置一個斷點?

我懷疑它被調用了兩次。 您在 ControlToValidate 上使用了兩個驗證器,其中一個有效,另一個無效。 javascript 由每個驗證器執行一次,它處理驗證器無效和驗證器有效的情況。

因此,顯然在您的情況下, RequiredFieldValidator “獲勝”並最后執行。

我不認為在這里覆蓋框架 function ValidatorUpdateDisplay 是正確的選擇。 鑒於您使用的是 ASP.NET WebForms,也許一個選項是包含 Ajax Control Toolkit。 它有一個 ValidatorCallout 擴展。 我假設您也可以在沒有“標注”的情況下使用此擴展,但只能使用 HighlightCssClass 選項。

http://www.ajaxtoolkit.net/ValidatorCallout/ValidatorCallout.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM