【发布时间】: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