こんにちは、contenteditable="true" div のテキストを制限しようとしています:
var char = 500;
$("#counter").append("You have <strong>" + char + "</strong> chars left.");
$("#editor").keypress(function () {
if ($(this).text().length > char) {
$(this).text($(this).text().substr(1));
}
var rest = char - $(this).text().length;
$("#counter").html("You have <strong>" + rest + "</strong> chars left.");
if (rest <= 100) {
$("#counter").css("color", "#ff7777");
}
else {
$("#counter").css("color", "#111111");
}
});
残念ながら、次の問題に直面しています。
- デフォルトで div にテキストが含まれている場合、残りの文字数は挿入または削除されるまで更新されません。
- ユーザーが文字の最大数を超えた場合、改行はテキスト ボックスの先頭に移動し、最近挿入された文字の代わりに最初の文字を削除します。
- ユーザーが 200 文字を超えるテキストを貼り付けた場合、テキストは短縮されません。
コードを見つけてください: http://jsfiddle.net/mmacin/A69tk/1/