1
我的表單包含母版頁和子頁..如何讓jQuery.validate()在使用母版頁的ASP.NET中工作?
如何驗證子頁面內的表單?當我嘗試使用母版頁時,驗證不會運行。但是,當我不使用母版頁時,一切都正常。
請解釋如何讓jQuery Validate在使用Master Page的ASP.NET中工作。
我的表單包含母版頁和子頁..如何讓jQuery.validate()在使用母版頁的ASP.NET中工作?
如何驗證子頁面內的表單?當我嘗試使用母版頁時,驗證不會運行。但是,當我不使用母版頁時,一切都正常。
請解釋如何讓jQuery Validate在使用Master Page的ASP.NET中工作。
我意識到這有點晚了,但我想我會分享我的發現,看到我剛剛經歷了這一點。
要在ASP.Net母版頁環境中使用jQuery驗證,你要記住,佔位符改變一切,包括姓名。由於.validate()嚴重依賴每個字段的名稱,因此必須爲每個字段獲取客戶端名稱。因爲這可以根據您的佔位符改變(我最終看起來像name="ctl00$ContentPlaceHolder1$FirstName"
),你的代碼應該是這個樣子:
$(document).ready(function() {
$('form').validate({
rules: {
<%= FirstName.Name %>: {
required: true,
minlength: 2,
maxlength: 25
},
<%= LastName.Name %>: {
required: true
},
<%= Email1.Name %>: {
required: true,
email: true
},
<%= Email2.Name %>: {
required: true,
email: true,
equalTo: "#<%= Email1.ClientID %>"
},
<%= Password1.Name %>: {
required: true,
minlength: 7
},
<%= Password2.Name %>: {
required: true,
minlength: 7,
equalTo: "#<%= Password1.ClientID %>"
}
},
messages:{
<%= FirstName.Name %>: {
required: "Please enter your first name.",
minlength: $.validator.format("Your first name must be at least {0} characters.")
},
<%= LastName.Name %>: {
required: "Please enter your last name.",
minlength: $.validator.format("Your last name must be at least {0} characters.")
},
<%= Email1.Name %>: {
required: "Please enter your email address.",
email: "Please enter a valid email address."
},
<%= Email2.Name %>: {
required: "Please confirm your email address.",
email: "Please confirm with a valid email address.",
equalTo: "Email entries do not match."
},
<%= Password1.Name %>: {
required: "Please enter a password",
minlength: $.validator.format("Your password must be at least {0} characters.")
},
<%= Password2.Name %>: {
required: "Please confirm your password.",
equalTo: "Passwords do not match."
}
},
errorClass: "error-label",
wrapper: "li",
errorLabelContainer: "#ErrorSection"
});
});
此代碼是直接取自我的工作網頁使用jQuery Validation版本1.12.0和jQuery版本1.11.0。
編輯:我想補充一點的是,我驗證輸入也runat="server"
對服務器端的交互。
母版頁總是先調用,並將事件綁定到dom元素,甚至在它們在子頁面中創建之前。所以驗證需要在子頁面中完成。爲了減少工作量,您可以將所有的驗證函數轉移到一個新的JS文件中,並將其包含在所有的子頁面中。 –