2017-02-22 46 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; 
    }; 

這讓我有正確的數量,使得它正確地驗證在客戶端之間。