[英]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.