Плагин проверки JQuery: принимать только письма? - PullRequest
18 голосов
/ 19 марта 2010

Я использую плагин проверки от http://bassistance.de/jquery-plugins/jquery-plugin-validation/

Я пытаюсь найти способ заставить некоторые из моих полей формы принимать только буквы, без чисел, специальных символов и т. Д. *

Есть идеи людей? Большое спасибо.

Ответы [ 8 ]

37 голосов
/ 19 марта 2010

Просто добавьте пользовательский валидатор и используйте его так:

jQuery.validator.addMethod("accept", function(value, element, param) {
  return value.match(new RegExp("." + param + "$"));
});

Только цифры:

rules: {
  field: { accept: "[0-9]+" }
}

Только буквы

rules: {
  field: { accept: "[a-zA-Z]+" }
}
18 голосов
/ 19 мая 2010

Небольшое изменение.

jQuery.validator.addMethod("accept", function(value, element, param) {
    return value.match(new RegExp("^" + param + "$"));
});

Потому что таким образом он принимал выражения типа "#abc".

4 голосов
/ 29 ноября 2013

Используйте приведенный ниже код в вашем скрипте. это добавит новый пункт в ваш валидатор.

$.validator.addMethod(
        "alphabetsOnly",
        function(value, element, regexp) {
            var re = new RegExp(regexp);
            return this.optional(element) || re.test(value);
        },
        "Please check your input values again!!!."
);
$("#formElement").rules("add", {alphabetsOnly: "^[a-zA-Z'.\\s]$" })
2 голосов
/ 09 ноября 2017

Попробуйте: ( Это идеальная проверка с использованием jquery validator )

$(function() {

    $.validator.addMethod("alphabetsnspace", function(value, element) {
        return this.optional(element) || /^[a-zA-Z ]*$/.test(value);
    });

    $("#add-employee").validate({
        rules: {
            employee_surname: {
                required: true,
                alphabetsnspace: true
            },
            employee_firstname: {
                required: true,
                alphabetsnspace: true
            },
            employee_othername: {
                alphabetsnspace: true
            },
            father_name: {
                required: true,
                alphabetsnspace: true
            },
            mother_name: {
                required: true,
                alphabetsnspace: true
            },
            spouse_name: {
                alphabetsnspace: true
            },
            ssn: {
                number: true,
            },
            phone_no: {
                number: true,
            },
            phone_no2: {
                number: true,
            },
            passport: {
                number: true,
            },
            driving_license: {
                number: true,
            },
            email: {
                email: true
            }
        },
        messages:
            {
                "employee_surname":{
                    alphabetsnspace: "Please Enter Only Letters"
                },
                "employee_firstname":{
                    alphabetsnspace: "Please Enter Only Letters"
                },
                "employee_othername":{
                    alphabetsnspace: "Please Enter Only Letters"
                },
                "father_name":{
                    alphabetsnspace: "Please Enter Only Letters"
                },
                "mother_name":{
                    alphabetsnspace: "Please Enter Only Letters"
                },
                "spouse_name":{
                    alphabetsnspace: "Please Enter Only Letters"
                },
            }
    });
});
0 голосов
/ 09 сентября 2016

Добавить CDN

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/additional-methods.js"></script>
rules:{
    txtname:{required: true,
            lettersonly:true
            }
0 голосов
/ 05 июля 2016

Плагин jQuery Validate уже имеет правило под названием lettersonly как часть файла additional-methods.js , которое выглядит так ...

$.validator.addMethod( "lettersonly", function( value, element ) {
    return this.optional( element ) || /^[a-z]+$/i.test( value );
}, "Letters only please" );
0 голосов
/ 15 февраля 2016

Следующий метод добавления пользовательского валидатора работает нормально, но проверка происходит при keyup, поэтому ошибка продолжает появляться, пока пользователь печатает текст.

return value.match(new RegExp(""));

Приведенный ниже метод отлично работает для алфавитов и пробелов, идеально подходит для полей имен.

jQuery.validator.addMethod("alphabetsAndSpacesOnly", function (value, element) {
    return this.optional(element) || /^[a-zA-Z\s]+$/.test(value); });

    $("FieldId").rules("add", {
        alphabetsAndSpacesOnly: true,
        messages: { alphabetsAndSpacesOnly: "Please enter a valid name." }
    });
0 голосов
/ 22 февраля 2012

Попробуй так:

        var numbers = /[0-9]+/;
        var SpCharacters = /^\s*[a-zA-Z0-9\s]+\s*$/;

        if (!numbers.test(name) && !SpCharacters.test(name)) {
            return [false, "Name should be alphabetical.", ""];
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...