我是一个巨大的书呆子,并为此提出了一个小建议。基本上得到CKEditor的值,把它吐进一个一次性的DIV,用jQuery得到那个内容的长度,然后和0比较。
我制作了一个jsfiddle示例,它同时为 CKFinder 和一次性使用 contenteditable DIV。这是JavaScript,我希望你明白。如果没有,请提出问题,我将尝试澄清我扭曲的代码。
$(function() {
// this just keeps track of the contenteditable
// replace with your submit or whatever event
$('body').on('focus', '[contenteditable]',
function() {
var $this = $(this);
$this.data('before', $this.html());
return $this;
}).on('blur keyup paste', '[contenteditable]', function() {
var $this = $(this);
if ($this.data('before') !== $this.html()) {
$this.data('before', $this.html());
$this.trigger('change');
}
return $this;
});
$('body').on('change', function() {
validate();
});
// This actually validates the string as 0-rendering or not.
function validate() {
// Replace this text getter with getting the CKE content
// Then vomit it into a DIV like check and then get it again.
// just keep #check invisible with CSS.
var text = $('#check').text();
var l = text.trim().length;
// if length is 0, it renders as whitespace only
// I show a message to whine about that
if (l === 0) {
$('#aaa').text("DOES NOT PASS");
}
else {
$('#aaa').text("PASS");
}
}
validate();
});