web-dev-qa-db-fra.com

Jquery validation plugin - TypeError: $ (...). Validate n'est pas une fonction

Mon script jette des erreurs:

TypeError: jQuery.validator n'est pas défini. Additional-methods.js: 20 TypeError: $ (...). Validate n'est pas une fonction index.php: 115

J'ai probablement une erreur dans le code jQuery.

<head>
<script type="text/javascript" src="js/jquery-1.10.2.js"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>
<script src="http://jquery.bassistance.de/validate/additional-methods.js"></script>
</head>
<body>
            <form id="registerForm" method="post" action="logrej.php">
            <input name="login" type="text"/>
            <input name="nick" type="text"/>
            <input type="password" id="passw" name="password"/>
            <input type="password" name="retype" />
            <input type="submit" value="Zarejestruj!" />
            </form>
            <script>

                $("#registerForm").validate({
                    rules: {
                        login: {
                            required:true,
                            rangelenght: [4,20],
                            remote:"look.php"
                        },
                        nick : {
                            required:true,
                            rangelenght:[4,20],
                            remote:"look.php"
                        },
                        password: {
                            required:true,
                            rangelenght:[4.20]
                        },
                        retype: {
                            required:true,
                            equalTo:"#passw"
                        }
                    },
                    messages:{
                        login:{
                            required:"To pole jest wymagane!"
                        }
                    }
                })

            </script>
35
jaksa

Vous ne chargez pas le plugin de validation. Vous avez besoin:

<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script>

Placez ceci avant la ligne qui charge les méthodes supplémentaires.

En outre, vous devriez également obtenir les méthodes supplémentaires auprès du CDN, plutôt que jquery.bassistance.de.

Autres erreurs:

[4.20]

devrait être

[4,20]

et

rangelenght:

devrait être:

rangelength:
79
Barmar

Pour moi, problème résolu en changeant http: // ajax ... en https: // ajax ... (ajouter un S à http)

https://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.js
3
dragoeco

Incluez jquery.validate.js avant additional-methods.js.

La méthode $.validate() y est définie

2
n1k1ch

Il semble que l'erreur JavaScript que vous obtenez est probablement causée par

password: {
    required:true,
    rangelenght:[4.20]
},

Comme le [4.20] devrait être [4,20], qui, je suppose, jette le code de validation dans additional-methods donnant donc le type d'erreur que vous avez posté.

Edit: Comme d’autres l’ont noté dans les commentaires ci-dessous, rangelenght est également mal orthographié & jquery.validate.js La bibliothèque semble être manquante (en supposant qu'elle ne soit pas compilée dans l'un de vos autres éléments).

1
Carl

J'ai eu le même problème. J'utilise jquery-validation en tant que module npm et le correctif pour moi était d'exiger le module au début de mon fichier js:

require('jquery-validation');
1
Little Brain

Vous n'avez pas inclus la bibliothèque de base de validation jQuery:

<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.js"></script>

Mettez cela avant la bibliothèque de méthodes supplémentaires. (BTW c'est une version hébergée, téléchargez la vôtre si vous le souhaitez)

0
Damien Black