web-dev-qa-db-ja.com

$( "#form1")。validateは関数ではありません

<script type="text/javascript">
<!--
$(document).ready(function() { 
      $("#form1").validate({ 
        rules: { 
         budget: {
            required: true,
             minlength:3
        } ,
       duration: {
            required: true,
            digits:true
        }, 
         town: {
            required: true,
             minlength:2

        },

       content: {
            required: true,
            minlength:300 

        }
         }, 
        messages: { 


        } 
          }); 
        });
        -->
</script>

2つのjqueryファイルが含まれています。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript" src="../common/jquery.validate.js"></script>

含まれています。組み込みには何も問題はありません。

エラーメッセージが表示されました

$( "#form1")。validateは関数ではありません

27
Steven

JQueryスクリプトタグを置くbefore検証用のスクリプトタグ

私はこの非常にイライラするエラーに遭遇しましたが、オンラインで実行可能な回答がないため、1時間の大半を失いました。 Firebugで、jQueryと検証の両方でCDNにヒットしていることを確認しました。

最後に、これを変更します:

    <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>
    <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.4.4.min.js"></script>

これに:

    <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.4.4.min.js"></script>
    <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.7/jquery.validate.min.js"></script>

必要なのはそれだけでした。

33
Jay

これと同じ問題がありました。ページ上でjQuery JavaScriptファイルを複数回ロードしていることがわかりました。これは、ページ(または、私の場合はJSP)が含まれていたためです。 jQuery jsファイルへの重複参照を削除すると、このエラーはなくなりました。

20
Michael Sobczak

私は同じ問題を抱えていました。はい、jqueryを最初に含め、次にjquery validateスクリプトを含めました。何が悪いのか分かりませんでした。移動した検証URLを使用していたことがわかりました。私はこれを次のようにして解決しました。

  1. Firefoxを開く
  2. ファイアバグを開く
  3. Firebugの[NET]タブをクリックします。これにより、ロードされるすべてのリソースが表示されます。
  4. ページをロードします。
  5. ロードされたリソースを確認し、jqueryとjquery.validate.jsの両方がロードされたかどうかを確認します。

私の状況では、 http: //rocketsquared.com/wiki/Plugins/Validation )。

そのリンク(http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js)が http://view.jquery.com/trunk/pluginsに移動したことがわかります/validate/jquery.validate.js (Webサーバーではなくローカルでファイルをロードしたときに、Firebugからこれが通知されました)。

注:MicrosoftのCDNリンクも使用しようとしましたが、正しいURLでブラウザーにjavascriptファイルをロードしようとすると失敗しました。CDNサイトで奇妙な問題が発生していました。

4
scifisamurai

最新の http://ajax.Microsoft.com/ajax/jquery.validate/1.5.5/jquery.validate.js を使用して、検証を取得するためにMicrosoftのCDNのいずれかを使用する必要があります。ファイル。

2
Ibrahim

同じ問題がありました。検証されたHTML&_name="email"_から_<input />_属性が欠落していることがわかりました。 positive HTMLが有効であることを常に検証します。追加した後、validate()は完全に機能しました。

2
Josh

プロキシを使用しているかどうかを確認します。

Mozilla Firefoxでこの問題が発生しました。Firefox自体に関連する問題だと思いました。後で、プロキシサーバーを使用していることがわかりました。プロキシをオフにすると、すべてがうまくいきました。

1
Ahmad Pouramini

JQueryが$変数を使用しており、別のJavaScriptフレームワークではないことを確認してください。

Doctypeを確認します。HTMLを検証します。ブラウザが奇抜なモードで表示されない場合や、不正な形式のHTMLを検出する場合があります。

また、jquery.validate.jsファイルが正しいことを確認してください。

以下からダウンロードできます。

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

1
CodeJoust

問題に対する私の解決策:フッターに<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-form-validator/2.3.26/jquery.form-validator.min.js"></script>

おそらく、ブラウザは最初に検証スクリプトをダウンロードし、次にjQueryをダウンロードしました。 jQueryをロードする前に検証スクリプトをダウンロードすると、エラーが発生します。これは、firebugなどのツールを使用して確認できます。

これを試して:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script>
    function LoadValidade() {
        var a = false;
        try {
            var teste = $('*');
            if(teste == null)
                throw 1;
        } catch (e) { 
            a = true; 
        }

        if (a){ 
            setTimeout(LoadValidade, 300);
            return;
        }

        var validadeScript = document.createElement("script");
        validadeScript.src = "../common/jquery.validate.js";
        $('head')[0].appendChild(validadeScript);
    } 
    setTimeout(LoadValidade, 300);
</script>
1
Vismari

私の場合、ドキュメントの準備機能の外に検証部分を移動しましたが、うまく機能します。私はそれがあなたのために働くことを願っています...

 $(document).ready(function () {
   // paste validate function outside of the document ready function...
});

    $('#form1').validate({

        rules: {
            English_Name: { required: true, minlength: 3 },
            Arabic_Name: { required: true, minlength: 3 },
            latitude: { required: true, min: 16, max: 32, number: true },
            longitude: { required: true, min: 32, max: 52, number: true },
            EmployeeID: { required: true },
            PaymentTypeID: { required: true },
            BusinessTypeID: { required: true },
            SalesTypeID: { required: true },
            OutletLength: { required: true },
            OutletWidth: { required: true },
            CONTACT_PERSON: { required: true },
            MOBILE_NO: { required: true, minlength: 9, maxlength: 13, digits: true },
            TRADE_LIC_DATE: { dateValidation: true },
            CreditLimit: { min: 0, max: 2000000 },
            CreditPeriod: { min: 0, max: 365 },
            EMAIL_ADDRESS: { email: true },
            BusinessClassID: { required: true },
            CustomerClassificationID: { required: true },
            LicenseTypeID: { required: true }
        },
        message: {
            English_Name: {
                required: ''

            },
            ToDate: {
                required: ''

            }




        },
        submitHandler: function (form) { // for demo

            $.ajax({
                type: 'POST',
                url: '/sfa/Verification/SaveDataInDatabase',
                data: $('form').serialize(),
                beforeSend: function () {
                    $('.submitBtn').attr("disabled", "disabled");
                    $('.modal-body').css('opacity', '.5');
                },
                success: function (msg) {


                    $("#form1").trigger('reset');
                    $('.modal').modal('hide');
                    $('.submitBtn').removeAttr("disabled");
                    $('.modal-body').css('opacity', '');
                }
            });
        }
    });
0
Hamza Amin

馬鹿げているかもしれませんが、インラインスクリプトがスクリプトタグを含めた後であることを確認してください。

0
fredrik

リンクがある場合、問題の内容を確認できますが、いくつか質問と確認事項があります。

  • HTMLのフォームのIDは「form」という名前ですか?
  • メッセージが必要かどうかを確認します。パラメータに不均衡がある可能性があります
  • また、GoogleからjQueryを取得する 'type = "text/javascript"'属性を追加する必要があります

また、jQueryの取得にGoogle CDNを使用する場合は、検証ファイルの取得にもMicrosoftのCDNを使用できます。これらのURLはいずれも機能します。

0
Liam

私はこの問題を抱えていました。jqueryURLは有効で、すべてが正常に見え、検証はまだ機能していました。 CTL + F5をハードリフレッシュすると、Chromeでエラーがなくなりました。

0
bradley32110