CLEditor の maxlength 関数を再作成しようとしています。目的は次のとおりです。テキストがテキストボックスに入力され、設定された最大長よりも長い場合、テキストボックスはフォーカスを失い、それ以上文字を書くことができなくなります。
これまでに達成したことは、CLEditor がテキストが最大長を超えたときにそれを認識することです。フォーカスを失うために、単純なリターン (つまり、return; return false;) といくつかの .blur() メソッド (つまり、$(frameDesc).blur(); と cledDesc.$area.blur();) を試しました。しかし、それらは機能していません。maxlength に達してもテキストを入力できます。
コードを見てください:
$("#profileForm_description").cleditor({width: 430, height: 125});
var cledDesc = $("#profileForm_description").cleditor()[0];
var frameDesc = cledDesc.$frame[0].contentWindow.document;
$(frameDesc).bind('keypress change', function(){
var text = textWithoutHTML(cledDesc.$area.val());
if(text.length >= 650){
console.log("Longer than MaxLength");
//lose focus
}else{
//Do something
}
});
ヘルプとヒントをいただければ幸いです:)