私はこれを理解しようとして髪を引っ張ってきました。
現在、jquery 検証プラグインを使用して jquery 2.2.2 を実行しています。https://jqueryvalidation.org/ および Trumbowyg WYSIWYG エディター。https://alex-d.github.io/Trumbowyg/
ほとんどすべてが機能しますが、実際にクリックしたり何かを実行したりするたびに、それは素晴らしいことです。コンソール エラーが発生しますUncaught TypeError: Cannot read property 'nodeName' of undefined
。また、Trumbowyg の特定の部分が正しく機能しないようにします。
したがって、私の解決策は、jquery 検証プラグインで無視クラスを使用することでした。しかし、うまくいきません。さまざまなフィールドのほとんどすべてのクラスのラベル付けを無視しようとしましたが、何をしても無視されることはありません。
では、trumbowyg テキスト エディタで jquery 検証プラグインを使用するにはどうすればよいでしょうか。
これが私の検証コードです。
$('form').validate({
errorPlacement: function (error, element) {
if ($(element).parent('.input-group').length) {
error.insertAfter(element.parent().siblings('label'));
error.addClass('alert alert-danger validate');
} else {
error.insertAfter(element.siblings('label'));
error.addClass('alert alert-danger validate');
}
},
errorElement: 'div',
highlight: function (element) {
$(element).parent().addClass("has-error");
},
unhighlight: function (element) {
$(element).parent().removeClass("has-error");
},
ignore: '.advanced',
rules: {
password_confirm: {
equalTo: 'input[name=password]'
},
user_username: {
remote: {
url: 'action/check/',
type: 'POST',
data: {
id: function () {
return $('input[name=id]').val();
}
}
}
},
nav_name: {
remote: {
url: 'action/check/',
type: 'POST',
data: {
id: function () {
return $('input[name=id]').val();
}
}
}
}
},
messages: {
password_confirm: {
equalTo: "Passwords must match"
},
user_username: {
remote: "This Username already exists"
},
nav_name: {
remote: "This Nav Item Name already exists"
}
},
submitHandler: function (form) {
$('button[type="submit"]').addClass('disabled').prop('disabled', true).prepend('<span class="bootstrap-dialog-button-icon glyphicon glyphicon-asterisk icon-spin"></span>');
form.submit();
}
});
検証プラグインを削除しましたが、trumbowyg のすべてが機能しました。そのため、新しい検証プラグインを見つける時が来たのかもしれませんが、それは避けたいと思います。
更新: Firefox で別のエラーが発生していることに気付いたので、それも共有したいと思います。
TypeError: owner is undefined
owner[ this.expando ] && owner[ this.expando ][ key ];
問題の例は、http: //develop.chrischampeau.com/admin/test.phpでデモできるはずです。