【问题标题】:How to make custom jQuery-Validate Rule work?如何使自定义 jQuery-Validate Rule 起作用?
【发布时间】:2014-08-09 04:25:21
【问题描述】:

这是我的表格:

<form class= "myForm" action="someAction" method="post">
  <fieldset>
    <input type="hidden" name="source" value="zions_direct" />
    <ul class="cf">
      <li>
        <label for="firstname">First Name</label>
        <input type="text" name="firstName" id="firstName" placeholder="First Name" class="text" />
      </li>
      <li>
        <label for="lastname">Last Name</label>
        <input type="text" name="lastName" id="lastName" placeholder="Last Name" class="text" />
      </li>
      <li>
        <label for="email">Email Address</label>
        <input type="email" name="email" id="input-email" placeholder="Email Address" class="text" />
      </li>
      <li>
        <input type="submit" alt="Send My Form" target="_blank" value="SUBMIT" />
      </li>
    </ul>
  </fieldset>
</form>

我正在尝试创建一个 jQuery 验证规则,该规则根据正则表达式检查名字和姓氏,并在不满足条件(或自定义规则返回 false)时显示一条消息(同时阻止表单提交):

function validator() {
  $.validator.addMethod('nameCheck', function(value, element) {
    return /^([a-zA-Z .'-]{3,80})+$/.test(value);
  }, 'Please type a valid name');

$('.myForm').validate({
  rules: {
    firstName: {
      required: true,
      name: true,
      nameCheck: true
    },
    lastName: {
      required: true,
      name: true,
      nameCheck: true
    },
    email: {
      required: true,
      email: true
    }
  }
});

我错过了什么?内置的 email: true 有效,但我的自定义无效。感谢您的宝贵时间和帮助。

【问题讨论】:

  • name 方法不是插件的一部分。除非您还使用.addMethod() 创建了它,否则这肯定是个问题。
  • 检查您的 Javascript 控制台是否有错误。
  • @Sparky 这就是问题所在,我已将 'name' 重命名为 'nameCheck' 并忘记在添加规则之前删除这一行。这很愚蠢。但是谢谢,如果您想发布我可以接受的答案...

标签: javascript jquery regex jquery-validate


【解决方案1】:

name 方法不是这个插件的一部分。而且我在您的 OP 中没有看到您使用 .addMethod() 创建它的任何地方,因此这将在评估您的 nameCheck 规则之前使验证卡住。

firstName: {
    required: true,
    name: true,  // <- what is this? 
    nameCheck: true
},

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-10
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多