【发布时间】:2010-05-08 13:05:37
【问题描述】:
我想使用 jQuery 的验证插件来验证一个只接受字母字符的字段,但似乎没有定义它的规则。我搜索了谷歌,但没有发现任何有用的东西。
有什么想法吗?
感谢您的帮助。
【问题讨论】:
标签: jquery validation jquery-validate
我想使用 jQuery 的验证插件来验证一个只接受字母字符的字段,但似乎没有定义它的规则。我搜索了谷歌,但没有发现任何有用的东西。
有什么想法吗?
感谢您的帮助。
【问题讨论】:
标签: jquery validation jquery-validate
如果您包含其他方法文件,这里是 1.7 的当前文件:http://ajax.microsoft.com/ajax/jquery.validate/1.7/additional-methods.js
您可以使用lettersonly 规则 :) 附加方法是您下载的 zip 的一部分,您始终可以找到最新的here。
这是一个例子:
$("form").validate({
rules: {
myField: { lettersonly: true }
}
});
值得注意的是,每个附加方法都是独立的,您可以包含特定的方法,只需将其放在您的 .validate() 调用之前:
jQuery.validator.addMethod("lettersonly", function(value, element) {
return this.optional(element) || /^[a-z]+$/i.test(value);
}, "Letters only please");
【讨论】:
小心,
jQuery.validator.addMethod("lettersonly", function(value, element)
{
return this.optional(element) || /^[a-z," "]+$/i.test(value);
}, "Letters and spaces only please");
[a-z, " "] 通过添加逗号和引号,您允许空格、逗号和引号进入输入框。
对于空格 + 文本,只需这样做:
jQuery.validator.addMethod("lettersonly", function(value, element)
{
return this.optional(element) || /^[a-z ]+$/i.test(value);
}, "Letters and spaces only please");
[a-z] 这允许空格和文本。
.................................................. ......................
如果您在消息中已经有消息,则不需要消息“请仅输入字母和空格”:
messages:{
firstname:{
required: "Enter your first name",
minlength: jQuery.format("Enter at least (2) characters"),
maxlength:jQuery.format("First name too long more than (80) characters"),
lettersonly:jQuery.format("letters only mate")
},
亚当
【讨论】:
尼克和亚当的答案都非常有效。
如果您想像我想要的那样允许像 á 和 ç 这样的拉丁字符,我想添加一条注释:
jQuery.validator.addMethod('lettersonly', function(value, element) {
return this.optional(element) || /^[a-z áãâäàéêëèíîïìóõôöòúûüùçñ]+$/i.test(value);
}, "Letters and spaces only please");
【讨论】:
ñ
\-
只是对尼克的回答的一个小补充(效果很好!):
如果您想在字母之间允许空格,例如, 您可以限制只输入全名的字母,但它也应该允许空格 - 只需用逗号列出空格,如下所示。如果您需要允许任何其他特定字符,则以同样的方式:
jQuery.validator.addMethod("lettersonly", function(value, element)
{
return this.optional(element) || /^[a-z," "]+$/i.test(value);
}, "Letters and spaces only please");
【讨论】:
允许字母和空格
jQuery.validator.addMethod("lettersonly", function(value, element) {
return this.optional(element) || /^[a-z\s]+$/i.test(value);
}, "Only alphabetical characters");
$('#yourform').validate({
rules: {
name_field: {
lettersonly: true
}
}
});
【讨论】:
$('.AlphabetsOnly').keypress(function (e) {
var regex = new RegExp(/^[a-zA-Z\s]+$/);
var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
if (regex.test(str)) {
return true;
}
else {
e.preventDefault();
return false;
}
});
【讨论】: