jQuery validate plugin: n'accepte que les lettres?

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

ce que j'essaie de trouver est un moyen de faire que certains de mes champs de formulaire acceptent seulement les lettres, pas de nombres, caractères spéciaux, etc...

une idée des gens ? Merci beaucoup.

18
demandé sur pixelboy 2010-03-19 13:12:39

8 réponses

il suffit d'ajouter un validateur personnalisé, et de l'utiliser comme ceci:

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

Seuls les nombres:

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

seulement des lettres

rules: {
  field: { accept: "[a-zA-Z]+" }
}
37
répondu Marcos Placona 2010-03-19 10:23:49

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
répondu basex 2011-05-10 18:29:09

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
répondu Orchid 2015-04-06 16:20:36

Essayez comme ceci:

        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
répondu Nalan Madheswaran 2012-02-22 08:38:19

la méthode suivante pour ajouter un validateur personnalisé fonctionne bien, mais la validation se produit sur keyup, de sorte que l'erreur continue de surgir pendant que l'utilisateur tape le texte.

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

la méthode ci-dessous fonctionne très bien pour les Alphabets et les espaces, idéal pour les champs de nom.

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
répondu Bevin 2016-02-15 17:09:36

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

$.validator.addMethod( "lettersonly", function( value, element ) {
    return this.optional( element ) || /^[a-z]+$/i.test( value );
}, "Letters only please" );
0
répondu Sparky 2016-07-05 16:17:10

Ajouter un ca

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/additional-methods.js"></script>
rules:{
    txtname:{required: true,
            lettersonly:true
            }
0
répondu Suresh Sakhare 2016-09-09 05:48:47

Essayez Ceci : ( il s'agit d'une validation personnalisée parfaite en utilisant 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
répondu Jasim Juwel 2017-11-09 07:39:31