web-dev-qa-db-fra.com

jQuery valider le plugin: accepter uniquement les lettres?

J'utilise le plugin validate de http://bassistance.de/jquery-plugins/jquery-plugin-validation/

Ce que j'essaie de trouver, c'est un moyen de faire en sorte que certains champs de mon formulaire acceptent uniquement les lettres, pas de chiffres, de caractères spéciaux, etc.

Des idées, des gens? Merci beaucoup.

18
pixelboy

Ajoutez simplement un validateur personnalisé et utilisez-le comme ceci:

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

Seulement les chiffres:

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

Seulement des lettres

rules: {
  field: { accept: "[a-zA-Z]+" }
}
37
Marcos Placona

Un petit changement.

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

Parce que de cette façon, il acceptait des expressions comme "#abc".

18
basex

Utilisez le code ci-dessous dans votre script. Ceci ajoutera une nouvelle clause à votre validateur.

$.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]$" })
4
Orchid

Essayez ceci: ( C’est une validation personnalisée parfaite à l’aide de 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"
                },
            }
    });
});
2
Jasim Juwel

Ajouter 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
Suresh Sakhare

La méthode suivante pour ajouter un validateur personnalisé fonctionne bien, mais la validation se produit lors de la création d'une clé, ainsi l'erreur continue de s'afficher pendant que l'utilisateur tape le texte.

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

La méthode ci-dessous fonctionne bien pour les alphabets et les espaces, idéale pour les champs de noms.

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
Bevin

Essayez comme ça:

        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.", ""];
        }
0
Nalan Madheswaran

Le plugin jQuery Validate a déjà une règle appelée lettersonly dans le cadre de le fichier additional-methods.js , qui ressemble à ceci ...

$.validator.addMethod( "lettersonly", function( value, element ) {
    return this.optional( element ) || /^[a-z]+$/i.test( value );
}, "Letters only please" );
0
Sparky