[英]How to apply Client-side validation by calling a server-side function in ASP.NET
我有一個ASP.NET Web窗體應用程序。
我有一個帶有各種TextBox
的Form
,現在我有幾個asp:RequiredFieldValidator
鏈接到它們,它們屬於同一個ValidationGroup
。
現在,我必須將一些帶有相關錯誤消息的附加驗證應用於某些TextBox
。 具體來說,我要檢查TextBox
內的TextBox
是否為Guid
。 Morevoer必須立即進行此檢查,這意味着一旦用戶將光標從TextBox
移出,就必須執行驗證,而無需按Submit。
如何從Javascript調用IsGuid(string guid)
函數?
我怎樣才能附加兩個不同的錯誤消息作為驗證(例如,如果TextBox.Text
不允許使用carachters,並且長度<N,我希望顯示一條消息)
使用jQuery或ASP.NET驗證器實現此驗證是否容易?
如果其他人對其實現有其他想法,請隨時提出。 謝謝!
您可以使用ReqularExpressionValidator控件。
這是一個正則表達式
^(\{){0,1}[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}(\}){0,1}$
您可以根據需要將任意多個Validator應用於同一控件(在本例中為TextBox)。
在這種情況下,自定義驗證器是必經之路,因為它使您能夠使用開發的任何功能來滿足需求進行驗證。 請看一下這個簡單的教程 。
更新1 :服務器端驗證
這就是它在CustomValidator的聲明中調用服務器端函數的方式:
<asp:CustomValidator runat="server" id="custPrimeCheck"
ControlToValidate="txtPrimeNumber"
OnServerValidate="PrimeNumberCheck"
ErrorMessage="Invalid Prime Number" />
VB函數“ PrimeNumberCheck”的示例:
Sub PrimeNumberCheck(sender as Object, args as ServerValidateEventArgs)
Dim iPrime as Integer = Cint(args.Value), iLoop as Integer, _
iSqrt as Integer = CInt(Math.Sqrt(iPrime))
For iLoop = 2 to iSqrt
If iPrime mod iLoop = 0 then
args.IsValid = False
Exit Sub
End If
Next
args.IsValid = True
End Sub
更新2 :客戶端驗證
這就是它在CustomValidator的聲明中調用服務器端函數的方式:
<asp:CustomValidator runat="server" id="custPrimeCheck"
ControlToValidate="txtPrimeNumber"
ClientValidationFunction="CheckPrime"
ErrorMessage="Invalid Prime Number" />
JavaScript函數“ CheckPrime”的示例:
function CheckPrime(sender, args)
{
var iPrime = parseInt(args.Value);
var iSqrt = parseInt(Math.sqrt(iPrime));
for (var iLoop=2; iLoop<=iSqrt; iLoop++)
if (iPrime % iLoop == 0)
{
args.IsValid = false;
return;
}
args.IsValid = true;
}
感謝@AdrianIftode使我意識到這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.