我一直在拔头发试图弄清楚这一点。
我目前正在使用 jquery 验证插件运行 jquery 2.2.2。https://jqueryvalidation.org/ 和 Trumbowyg 所见即所得编辑器。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