Плагин проверки jQuery: принимают только алфавитные символы?
Я хотел бы использовать плагин проверки jQuery для проверки поля, которое принимает только алфавитные символы, но для него, похоже, не существует определенного правила. Я искал google, но не нашел ничего полезного.
Любые идеи?
Цените свою помощь.
Ответы
Ответ 1
Если вы включите дополнительный файл методов, вот текущий файл для 1.7: http://ajax.microsoft.com/ajax/jquery.validate/1.7/additional-methods.js
Вы можете использовать правило lettersonly
:) Дополнительные методы являются частью загружаемого zip файла, вы всегда можете найти последнюю здесь.
Вот пример:
$("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");
Ответ 2
Будьте осторожны,
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")
},
Адам
Ответ 3
Просто небольшое дополнение к ответу Ника (что отлично работает!):
Если вы хотите разрешить пробелы между буквами, например,
вы можете ограничить ввод только букв с полным именем, но он также должен содержать пробел - просто введите пробел, как указано ниже, с запятой. И так же, если вам нужно разрешить любой другой конкретный символ:
jQuery.validator.addMethod("lettersonly", function(value, element)
{
return this.optional(element) || /^[a-z," "]+$/i.test(value);
}, "Letters and spaces only please");
Ответ 4
Оба Ника и Адам отвечают на работу очень хорошо.
Я хотел бы добавить примечание, если вы хотите разрешить латинские символы, такие как á
и ç
, как я хотел:
jQuery.validator.addMethod('lettersonly', function(value, element) {
return this.optional(element) || /^[a-z áãâäàéêëèíîïìóõôöòúûüùçñ]+$/i.test(value);
}, "Letters and spaces only please");
Ответ 5
чтобы буквы и пробелы
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
}
}
});
Ответ 6
$('.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;
}
});