CRUD操作に使用されるjQueryダイアログの作成を一般的に処理するプラグインがあります。ダイアログに追加されたフォームのマークアップは、プラグイン コードの外部で使用できます。プラグインは、マークアップを提供するように http サービスに要求し、受け取ったときにそれをダイアログ自体に追加するだけです。
onSetupValidation
次に、プラグイン ユーザーが各フォームの検証をカスタマイズするためのハンドルとなるプラグイン (関数) にコールバックを作成しました。これは私が使用しているコードの例です
var element = $('#mydiv');
element.crudplugin({
[...]
onSetupValidation: function(markup) {
var form = $('#myForm', markup);
var container = $('<div class="error"><p>Errors were found validating your form. Please correct them and retry.</p><ol></ol></div>')
.appendTo(form).hide();
var validator = form.validate({
errorContainer: container,
errorLabelContainer: $('ol', container),
errorElement: 'em',
wrapper: 'li',
highlight: function (element) {
$(element).addClass("ui-state-error");
},
unhighlight: function (element) {
$(element).removeClass("ui-state-error");
},
submitHandler: function (form) {
[...]
}
});
}
[...]
});
良い。問題に行きましょう
- マークアップ内に (クラス属性として) 検証規則を追加すると、検証がまったく機能しません。
validate()
メソッドにルールを追加しても同じ動作 グーグルで検索すると、特に SO で、次のサンプルのように検証プラグイン
.rules('add', rule)
のメソッドを使用する多くのサンプルが見つかりました。これらのリンクはすべて、次のサンプルのようにルールを追加する前にメソッドを呼び出すことをお勧めしますvalidate
$("#myField", markup).rules("add", { required: true });
しかし、命令が実行されるときにこのメソッドを使用すると、次のエラーが発生します。
SCRIPT5007: プロパティ 'settings' の値を取得できません: オブジェクトが null または未定義の jquery.validate.min.js、15 行目の文字 257
何かアドバイス?