使用contenteditable div,我想强调符合某个标准的单词。其中之一是用户输入的内容已达到该区域允许的最大长度。
我有点工作 - 但是一旦达到阈值,光标位置就会重新开始(并且用户有效地反向输入!)。
我需要这个在IE8 +中工作。
在替换区域内容之前,是否有某种方法可以获得该位置并将其设置回原位,或者我的思路是否错误?
由于
JS小提琴: http://jsfiddle.net/vfgLjf0c/
$(document).on("keypress", "div#editableContent", function(e) {
var element = $(this);
// KEYUP
if (e.type == "keypress") {
var curLen = element.text().length;
var maxLen = element.attr("data-maxlength");
if (curLen > maxLen) {
var overHang = element.text().substr(maxLen);
overHang = "<em style='background: #fcc;'>" + overHang + "</em>";
var newString = element.text().substr(0, maxLen) + overHang;
$(this).html(newString);
}
}
});
更新回答了我自己的问题 - 见下文。
答案 0 :(得分:0)