那麼我不確定是什麼問題,因爲這並沒有告訴我太多「不工作」。
只看你的代碼,我想看看可能會導致它不工作。
首先你沒有驗證方法掛鉤到任何形式。我不認爲你可以運行它,而不需要將它連接到表單標籤。
// from the validation documentation
$("#commentForm").validate();
注意它們如何綁定驗證字段。
下一頁
我覺得你做你的.addMethod錯誤
$(document).ready(function() {
$.validator.addMethod("#<%=TextBox1.ClientID %>", function(value, element) {
return this.optional(element) || /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,16}$/i.test(value);
}, "Passwords are 8-16 characters with uppercase letters, lowercase letters and at least one number.");
});
你所擁有的是上面,但如果你看看文檔。
addMethod(name, method, [message])
jQuery.validator.addMethod("math", function(value, element, params) {
return this.optional(element) || value == params[0] + params[1];
}, jQuery.format("Please enter the correct value for {0} + {1}"));
看看第一個參數如何是「名稱」而不是「id」。名稱就像這個新方法的名稱。
所以這addMethod可以被稱爲「Test101」,這將是名稱。或者像在examle你看他們把它命名爲「數學」
接下來你會做這樣的事情
$("#commentForm").validate
(
rules:
{
txtBoxIdName:
{
math: true;
}
}
);
所以會我這樣的事情。你可以將textboxId放在表單的validate方法中,然後在該id內調用你的.addMethod。在我的情況下,我使用了名爲「數學」的.addMethod,我相信你只需將它設置爲「true」即可使其運行。
我沒有測試過這個,所以我會嘗試找到一些實際運行的例子。
編輯
這裏是母版頁。
<!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>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
看到它有一個表單ID,當你把這個母版頁連接到一個aspx頁面時,你應該有這個。
<title>
</title>
<script>try { for(var lastpass_iter=0; lastpass_iter < document.forms.length; lastpass_iter++){ var lastpass_f = document.forms[lastpass_iter]; if(typeof(lastpass_f.lpsubmitorig)=="undefined"){ if (typeof(lastpass_f.submit) == "function") { lastpass_f.lpsubmitorig = lastpass_f.submit; lastpass_f.submit = function(){ var form = this; try { if (document.documentElement && 'createEvent' in document) { var forms = document.getElementsByTagName('form'); for (var i=0 ; i<forms.length ; ++i) if (forms[i]==form) { var element = document.createElement('lpformsubmitdataelement'); element.setAttribute('formnum',i); element.setAttribute('from','submithook'); document.documentElement.appendChild(element); var evt = document.createEvent('Events'); evt.initEvent('lpformsubmit',true,false); element.dispatchEvent(evt); break; } } } catch (e) {} try { form.lpsubmitorig(); } catch (e) {} } } } }} catch (e) {}</script></head><body>
<form name="aspnetForm" method="post" action="Default2.aspx" id="aspnetForm">
<div>
<input name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKMTY1NDU2MTA1MmRkJ6rATKUz8lX/wrHNVcM8o9fwof8=" type="hidden">
</div>
<div>
</div>
</form>
</body></html>
因此,請嘗試,如果這將足以讓它掛鉤。
我會說「不工作」是從來沒有**一個很好的描述。 **什麼**不起作用?你得到什麼錯誤或行爲? – 2010-03-13 22:02:15
如果我輸入錯誤輸入沒有反應....所以沒有錯誤也沒有結果。 – Eyla 2010-03-13 22:18:56