jquery.validateを使用しているフォームがあります。私は当初場合JQuery.Validateメッセージで動的ルールを追加する
$("#formName").append(...);
$("#newInputName").rules("add", {
required: true,
messages: {
required: "Enter something else"
}
});
...
$("#formName").validate({
rules: {
myExistingInput: {
required: true
}
},
messages: {
myExistingInput: {
required: "Enter something"
}
},
ignore: null, // include hidden fields (see below)
submitHandler: function(form) {
// do stuff
},
invalidHandler: function(event, validator) {
// do stuff (some of the fields may have been hidden by a collapsible panel
// if there is an error on one of those fields, expand the panel so the error
// becomes visible)
}
});
その後、私は動的にフォームにフィールドを追加し、あまりにもそれらのフィールドのためのルールを追加...ルールとカスタムメッセージのセットで検証呼び出します私は、ブラウザで
Exception occured when checking element newInputName, check the 'messages' method.TypeError: Unable to get property 'call' of undefined or null reference
デバッグ、私はエラーが「チェック」機能の中からスローされて見て、ことができます...私はjquery.validate内からエラーを取得し、フォームを送信」メソッド "変数「メッセージ」に設定されています。
私はコールからのルールにメッセージを削除する場合(、「追加」...
$("#newInputName").rules("add", {
required: true
});
期待どおりに動作しますが、明らかに私は今はカスタムエラーメッセージを持っていません。
私が持っていますSO私の構文が正しいことを示すには、ここで多くの例を見て任意の提案は
ところで:jQueryの検証プラグイン - v1.11.0は - 2013年2月4日
FYI:jquery.mobileと組み合わせて使用しています。 $( "#formName")。validate({...})は$(document).on( "pageinit"、...)から呼び出されますが、動的フィールドはボタンのクリックで追加されます。それが重要かどうかわからない? –
OPを編集してその情報を追加してください。 – Sparky
@ Sparky:問題は#670で修正されました。私は新しいバージョンが公式にリリースされるまで、その修正を私のコピーに複製しました。また、問題#674で修正されましたが、どのバージョンでリリースするのか分かりません。 #674で識別されたバージョン10と11の間のnormalizeRulesのコードが欠落しています(この欠落しているコードを復元すると問題は解決します)が、#674で提案されている修正はコードを復元するのではなく、#670とも異なります。 –