jQuery検証プラグイン1.9の新しいバージョンではデフォルトで隠しフィールドの検証は無視されました. 私はテキストエリア入力フィールドに CKEditor を使用しており、フィールドを非表示にして iframe に置き換えています。フィールドは存在しますが、非表示フィールドの検証は無効になっています。検証プラグイン バージョン 1.8.1 では、すべてが期待どおりに動作します。
私の質問は、v1.9 検証プラグインを使用して隠しフィールドの検証を有効にする方法です。
この設定は機能しません:
$.validator.setDefaults({ ignore: '' });
ベストアンサー1
プラグインの作者は、「引用符なしの角括弧」、[]
http://bassistance.de/2011/10/07/release-validation-plugin-1-9-0/
リリース: 検証プラグイン 1.9.0:「...別の変更により、非表示の要素を含むフォームの設定が容易になり、これらはデフォルトで無視されるようになりました (オプション「ignore」のデフォルトが「:hidden」になりました)。理論上、これにより既存の設定が壊れる可能性があります。万が一実際にそうなった場合は、無視オプションを「[]」(引用符なしの角括弧) に設定することで修正できます。」
すべてのフォームに対してこの設定を変更するには:
$.validator.setDefaults({
ignore: [],
// any other default options and/or rules
});
.setDefaults()
(関数内である必要はありませんdocument.ready
)
または、特定のフォームの場合:
$(document).ready(function() {
$('#myform').validate({
ignore: [],
// any other options and/or rules
});
});
編集:
見るこの答え一部の隠しフィールドの検証を有効にし、他のフィールドを無視する方法を説明します。
編集2:
コメントを残す前に"これは動作しません"OPが単に尋ねているのはjQuery Validateプラグインそして彼の質問は何もないASP.NET、MVC、またはその他の Microsoft フレームワークがこのプラグインの通常の予想される動作をどのように変更するかに関係します。Microsoft フレームワークを使用している場合、jQuery Validate プラグインのデフォルトの機能は Microsoft のunobtrusive-validation
プラグインによって上書きされます。
プラグインで問題がある場合はunobtrusive-validation
、代わりにこの回答を参照してください。https://stackoverflow.com/a/11053251/594235