Плагин проверки 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;
        }
    });