web-dev-qa-db-ja.com

JQuery検証プラグイン-TypeError:$(...)。validateは関数ではありません

私のスクリプトはエラーを投げます:

TypeError:jQuery.validator is undefined additional-methods.js:20 TypeError:$(...)。validate is not function function.php:115

おそらく、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

検証プラグインをロードしていません。必要なもの:

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

追加のメソッドをロードする行の前にこれを置きます。

また、jquery.bassistance.deではなく、CDNから追加のメソッドも取得する必要があります。

その他のエラー:

[4.20]

あるべき

[4,20]

そして

rangelenght:

する必要があります:

rangelength:
79
Barmar

私にとっては、 http:// ajax ...を https:// ajax ...に変更することで問題が解決しました(httpにSを追加)

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

additional-methods.jsの前に jquery.validate.js を含めます。

$.validate()メソッドがそこで定義されています

2
n1k1ch

おそらくあなたの取得が原因であるJavaScriptエラーのようです

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

[4.20][4,20]である必要があるため、additional-methodsの検証コードがスローされているため、タイプエラーが表示されます。

編集:他の人が以下のコメントで指摘しているように、rangelenghtのスペルも間違っています&jquery.validate.jsライブラリが見つからないようです(他のアセットの1つにコンパイルされていない場合)

1
Carl

同じ問題がありました。私はjquery-validationをnpmモジュールとして使用していますが、私の修正はjsファイルの開始時にモジュールを要求することでした:

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

ベースのjQuery検証ライブラリは含まれていません。

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

追加のメソッドライブラリの前に置きます。 (ところで、これはホストされたバージョンです。必要に応じて独自のものをダウンロードしてください)

0
Damien Black