2012-10-08 21 views
1

我有一個自定義的註冊表單,我在兩個不同的網站上使用。有兩個字段,user_pass和pass2。該user_pass字段具有以下驗證類:jQuery validationEngine無法正確驗證匹配字段

class="validate[required,custom[password],minLength[7]]" 

在語言文件自定義的正則表達式如下:

"password":{ 
    "regex": /^(.*\\d.{2,})|(.*[@#?$%^&+=\\*].*)(.?[a-z].*)$/, 
    "alertText": "* Must contain letters, numbers and symbols." 
    }, 

然後PASS2字段具有以下驗證類:

class="validate[required,equals[user_pass]]" 

如果您轉到mosleyfamilies.net/user-registration,您可以看到實際的表格。當您按照說明輸入密碼,然後在下一個字段中完全重複時,您會看到一個字段與錯誤不匹配 - 即使這些字段是錯誤的。

如果你然後去uniquelyyours.blogdns.com/simple-registration並做完全相同的事情,密碼將正確驗證。 Firebug沒有顯示任何錯誤,我試圖禁用一些我認爲可能會干擾的插件,但是沒有做任何事情。

對於我的生活,我無法弄清楚爲什麼這些字段沒有在mosleyfamilies.net上驗證,當兩個網站上的所有內容完全相同時。任何幫助將不勝感激!謝謝!

回答

0

我不知道這是否修復了所有問題,但是,如果您想限制最少字符數,則在第一段代碼中,應該使用minSize而不是minLenght。

class="validate[required,custom[password],minSize[7]]"

Validation Examples

+0

其實,在一個網站上,我拿走了支票,因爲它沒有工作。儘管唯一的驗證規則是必需的且等於,但它停止在另一個站點上工作。我正在探索其他的選擇。 – HeatherFeuer

0

雖然如果我的類似的問題,原來的海報的例子匹配是不明確的,我也有類似的問題,由於沒有設置元素的ID。看起來jquery.validation.js引擎中的equals函數依賴於元素的id來匹配。例如:

<input name="email" type="email" class="validate[required,custom[email]]"> 
    <input name="confirm_eml" type="email" class="validate[required,custom[email],equals[email]"> 

不會工作,因爲「等號」功能需要一個元素ID來鎖定。只需添加ID,如下所示:

<input name="email" type="email" id="email" class="validate[required,custom[email]]"> 
    <input name="confirm_eml" type="email" class="validate[required,custom[email],equals[email]]">