1

我有一个在两个不同站点上使用的自定义注册表单。有两个字段,user_pass 和 pass2。user_pass 字段具有以下验证类:

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 上验证。任何帮助将不胜感激!谢谢!

4

2 回答 2

0

我不知道这是否可以解决所有问题,但是,如果您想限制最小字符数,则在您的第一段代码中,您应该使用 minSize 而不是 minLenght。

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

验证示例

于 2012-10-18T14:04:13.420 回答
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]]">
于 2013-05-08T07:58:37.520 回答