【发布时间】:2011-12-30 20:10:48
【问题描述】:
我有这个 jQuery 代码:
var char = 60;
$("#counter").append("You have <strong>" + char + "</strong> char.");
$("#StatusEntry").keyup(function () {
if ($(this).val().length > char) {
$(this).val($(this).val().substr(0, char));
}
var rest = char - $(this).val().length;
$("#counter").html("You have <strong>" + rest + "</strong> char.");
if (rest <= 10) {
$("#counter").css("color", "#ff7777");
}
else {
$("#counter").css("color", "#111111");
}
});
效果很好! 但如果改为 val() 我有 text() 它不起作用。
问题是在可用字符的末尾它开始从头替换文本......使用 val 是完美的。
为什么我需要在文本上使用它? 因为我使用的是所见即所得插件,它将我的 textarea 转换为 div。
我正在尝试 .stopPropagation 但它不起作用.. 尝试返回 false 并且什么都没有...
希望得到您的帮助!
【问题讨论】:
-
当您将 val() 更改为 text() 时,哪一行不起作用...什么不起作用?能否请您包含您的 HTML ...我不知道 statusentry 是什么...
-
如果您将每个 val() 更改为 text() 并开始输入,则在 60 char 处开始替换开始的文本。
-
喜欢这个 -> jsfiddle.net/RjNuX/1
-
你的 substr 不正确,在这里工作 -> jsfiddle.net/RjNuX/2
-
使用 div 和 contentEditable=true 对我来说很好 -> jsfiddle.net/RjNuX/3