簡體   English   中英

Jquery 驗證插件 - TypeError: $(...).validate 不是函數

[英]Jquery validation plugin - TypeError: $(…).validate is not a function

我的腳本拋出錯誤:

TypeError: jQuery.validator is undefined additional-methods.js:20 TypeError: $(...).validate is not a function index.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>

您沒有加載驗證插件。 你需要:

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

將此放在加載其他方法的行之前。

此外,您還應該從 CDN 獲取其他方法,而不是 jquery.bassistance.de。

其他錯誤:

[4.20]

應該

[4,20]

rangelenght:

應該:

rangelength:

對我來說,通過將http://ajax ... 更改為https://ajax ... 解決的問題(向 http 添加 S)

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

additional-methods.js之前包含jquery.validate.js

$.validate()方法在那里定義

看起來你得到的 JavaScript 錯誤可能是由

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

由於[4.20]應該是[4,20] ,我猜這是在additional-methods丟棄驗證代碼,因此給出了您發布的類型錯誤。

編輯:正如其他人在下面的評論中指出的那樣, rangelenght也拼錯了, jquery.validate.js庫似乎丟失了(假設它沒有編譯到您的其他資產之一中)

您沒有包含基本的 jQuery 驗證庫:

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

把它放在附加方法庫之前。 (順便說一句,這是托管版本,如果需要,請下載自己的版本)

我有同樣的問題。 我使用 jquery-validation 作為 npm 模塊,而我的修復方法是在我的 js 文件的開頭要求該模塊:

require('jquery-validation');

對我來說,問題來自require('jquery-validation')我在那個 js 文件的請求中添加了 Validate 方法,這是作為npm 模塊所必需的

不幸的是,當 webpack 編譯 js 文件時,它們不是有序的,因此 validate 方法在定義它之前! 錯誤來了

所以最好使用另一個 js 文件來編譯這個庫或使用本地驗證方法文件,甚至使用 CDN 但在所有情況下,請確保您之前附加了 jquery

“validator.min.js” 你需要在“jquery-3.4.1.min.js”之后導入這個JS文件。 對你來說,版本可能會改變,但這種方式對我有用。

第 1 步:您的項目鏈接文件或可能是 CDN

第2步 :

放validator.min.js CDN鏈接或項目JS文件夾鏈接。

就這些,希望能幫到你。

如果使用 VueJS,首先導入 jQuery 擴展的所有 js 依賴項,然后再導入 $...

import "../assets/js/jquery-2.2.3.min.js"
import "../assets/js/jquery-ui-1.12.1.min.js"
import "../assets/js/jquery.validate.min.js"
import $ from "jquery";

然后,您需要從 VueJS 原型方法中全局定義的自定義包裝器調用的 javascript 函數中使用 jquery。

這可以防止 jQuery 和 jQuery UI 的使用與 VueJS 發生沖突。

Vue.prototype.$fValidateTag = function( sTag, rRules ) 
{
    return ValidateTag( sTag, rRules );
};

function ValidateTag( sTag, rRules )
{
    Var rTagT = $( sTag );
    return rParentTag.validate( sTag, rRules );
}

我有同樣的錯誤,這是出於完全不同的原因。

我一直以正確的順序加載庫,但問題是我正在包裝jQuery("#contact_form").validate(); 內部jQuery(document).ready(function () {}); .

當我把它放在外面時,錯誤消失了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM