字段驗證我有一個非標準在我的ASP.NET形式的線沿線的提交按鈕。調用需要通過JavaScript
<a class="button" href="#" onclick="this.blur();SubmitForm();"><span>Submit</span></a>
由於這個原因,我所需的字段驗證器不會在客戶端被調用。如何通過Javascript調用所需的字段驗證器?
或者是有沒有更好的方式來完成我所試圖做的?
字段驗證我有一個非標準在我的ASP.NET形式的線沿線的提交按鈕。調用需要通過JavaScript
<a class="button" href="#" onclick="this.blur();SubmitForm();"><span>Submit</span></a>
由於這個原因,我所需的字段驗證器不會在客戶端被調用。如何通過Javascript調用所需的字段驗證器?
或者是有沒有更好的方式來完成我所試圖做的?
您可以在this.Check命名Page_ClientValidate
了下面的代碼片段的參考
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ClientSide_Validation.aspx.cs"
Inherits="ClientSide_Validation" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function performCheck() {
if (Page_ClientValidate()) {
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="lbl1" runat="server" Text="Please enter some value"></asp:Label>
<asp:TextBox ID="txtbox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="valReq" ControlToValidate="txtbox1" runat="server"
ErrorMessage="*" Display="Dynamic">
</asp:RequiredFieldValidator>
<input type="button" id="btnValidate" value="Submit" onclick="performCheck()" />
<a href="#" onclick="performCheck();">Validate</a>
</div>
</form>
</body>
</html>
看一看的client side api for ASP.Net validators。頁面上的所有驗證器均通過Page_Validators
公開在Array
中。你可以在一個驗證器上調用ValidatorValidate(validator)
來調用它。因此,調用所有驗證您可以在網頁:
Page_Validators.forEach(ValidatorValidate);
順便說一句,在舊的瀏覽器you'll need to extend Array使用Array.forEach
。
Page_ClientValidate
觸發驗證的形式和@ gilly3所有驗證內置客戶端功能的使用顯示出來,你可以也通過循環集合來驗證它們並呼叫ValidatorValidate(validator)
但是,如果您只想驗證一個特定的驗證器,那麼您只需要爲一個項目調用ValidatorValidate(validator)
。
的驗證參數必須是一個DOM對象可以是棘手的,因爲元素的ID最終可能會比你,如果你正在使用母版頁或用戶控件的標記指定的完全不同。
例如
<asp:RequiredFieldValidator ID="rfvCampaignStartDate" runat="server" .../>
成爲
<span id="cph_0_rfvCampaignFile" ...>
我解決此得到了我的一個項目使用jQuery選擇這樣
ValidatorValidate($('[id$="rfvCampaignFile"]').get(0));
ASP.NET只前綴的ID創建一個獨特的名字我可以使用id$=
部分選擇器來匹配以"rfvCampaignFile"
結尾的任何ID,因爲我編寫了網站,我知道它不會與其他控件衝突。最後,我使用.get(0)
將DOM對象引用返回爲匹配的第一個(僅在我的情況下)DOM對象。
如果您正在使用jQuery然後設置一個ASP.NET控件的ClientIDMode = 「靜態」,你可以讓你的代碼更易於閱讀...
ValidatorValidate($( '#MyControl'));
或非常類似的東西。當你有同一個頁面上的多個驗證組
這將創建一個問題。 – rahularyansharma
http://stackoverflow.com/a/11548526/779158發現問題的答案在這裏也適用於驗證組。 – rahularyansharma