2017-02-22 49 views
0

沿着字符数插件使用Tiny MCE。在大多数情况下,它可以工作,但它有一个缺陷,即当你点击返回键时,它会计算所有以下字符。替换具有数据属性的HTML

<p><br data-mce-bogus="1"></p> 

但是,当这个被保存到数据库中也将其保存为

<p>&nbsp;</p> 

这是完全的罚款。问题在于验证,输入限制为5000个字符,并且每个返回都被计为30个字符,其中包含验证计数。即它说有超过5000个字符,实际上没有。

验证完成客户端,它可以在提交表单之前检查字符数。

到目前为止,我已经尝试

var decodedStripped = decoded.replace('data-mce-bogus="1"', ' /').trim(); 

但它似乎没有剥离不必要的数据属性。

这纯粹是需要验证的。

回答

0

我对此采取了另一种方式。而不是这个

var decodedStripped = decoded.replace('data-mce-bogus="1"', ' /').trim(); 

我统计了整个字符串中发生了多少次data-mce-bogus =“1”子字符串。然后我用这个的出现值与字符计数差异沿<p><br data-mce-bogus="1"></p><p>&nbsp;</p>

从而导致

self.getCount = function() { 
     var tx = editor.getContent({ format: 'raw' }); 

     var tcLength = tx.length; 

     var noOfReturns = occurrences(tx, 'data-mce-bogus="1"', false); 

     var cleanLength = tcLength - (17 * noOfReturns); 

     return cleanLength; 
    }; 

这让我有正确的数量,使得它正确地验证在客户端之间。