2011-07-28 18 views
3

「検証は関数ではありません」:jQueryの私は<a href="http://docs.jquery.com/Plugins/validation" rel="nofollow">this jQuery validation</a>プラグインを使用して、有名な取得しています

$(「#フォーム」)を検証しようとしたときに

関数ではありませんFirebug(および他のすべてのブラウザの同等のメッセージ)で検証します。

これは、私がjquery-1.4.2.jsjquery.validate.jsの両方がロードされる前にそれを呼び出そうとしていることを意味します。私はこれらのファイルを表示するためにバイオリンを使用しましたが前に私はこれらの2つのファイルが完全にブラウザ内にロードされていると仮定することができ、より良い方法がない状態でそうvalidate()を呼び出すに要求されています。

は、私はこれを解決するためになりますどこにもありますか?スクリプトが最初に要求された場合は、その順序でロードする必要がありますか?見つけ出す方法はありますか?

私は現在、プラグインで何か他のものこの原因(設定など)がある意見のです。私は全面的に調査しましたが、解決策のうちのどれもが私に当てはまるようには見えません。

見た目はどこですか?

$(document).ready(function() { 
    console.log("loaded"); 
    $("#Form").validate({ 
     rules: { 
      container_0$centre_0$txtFirstName: { required: true } 
     } 
    }); 
}) 

と形式は次のとおりです:

私のjQueryのは、コードの単純化されたバージョンがあります

<form method="post" action="/url" id="Form" enctype="multipart/form-data"> 

<div class="ctrlholder"> 
    <label for="firstname">First Name</label> 
    <input name="container_0$centre_0$txtFirstName" type="text" id="txtFirstName" class="required" /><em>*</em> 
    <div id="errFirstName" class="error" style="display:none;">Please enter your first name</div> 
    </div> 
</form> 

+1

この問題が発生するまで、空白のページから始めて追加を開始することをおすすめします。 –

+0

$が実際にjQueryオブジェクトであることも確認してください。 –

+0

jsコードを投稿できますか? – alesdario

答えて

1

thisように見える)jquery.tools.min.jsが問題を引き起こしていたことが表示されます。これを取り除くと、私はいつものように検証することができます。

私はさらに調査するつもりですが、私はそれがhas its own validationのメソッド名の重複を引き起こしている可能性が高いと推測される危険がありますが、私はスクリプトの縮小バージョンしか持っていません。

これは、このエッジケースのための優れた将来のリソースあろう。

代わり
$. validator.setDefaults ({ 
    submitHandler: function() {alert ('submitted'); } 
}); 

+0

これを投稿してうれしいです。私はこの問題に関して1時間苦労していたので、私が他に何を呼んでいるのか見ていました。私は同じ問題を抱えていることが判明し、別のプラグインが自分のフォーム要素を制御したいということが判明しました。 –

1

私は.validate()は、それ自体でのjQueryの方法であることが表示されません。これは、検証プラグインのメソッドのようです。 that plug-inが正しく組み込まれているかどうかを確認することをお勧めします。プラグインを操作する場合は、jQueryの互換バージョンも使用していることを確認する必要があります。

this jsFiddleからは、jQueryを含むjQueryオブジェクトにはvalidateというプロパティが存在しないことがわかります。

+0

いいえ、ライブラリを追加しても動作します([jsFiddle again](http://jsfiddle.net/43Q6T/1/)を確認してください) –

0

は私が入れ

jQuery.validator.setDefaults ({ 
    debug: true, 
    success: 'valid' 
}); 

そして、それは私のために働きました。

関連する問題

 関連する問題