我有一个 jsf 2.0 应用程序,其中我有一个输入文本框和一个数字字符左计数器在输入文本框的底部,我正在通过 javascript 进行更新。
<h:inputTextarea class="myInputTextClass"
value="#{bean.text}"
style="resize: none;width:445px;" type="text"
maxlength="255" cols="60" rows="3"
onfocus="countChars($('.myInputTextClass'),255)"
onkeyup="countChars($('.myInputTextClass'),255);"
onkeydown="countChars($('.myInputTextClass'),255);"
/>
<span id="char_count" style="font-style:italic;margin-left:-14px">255</span>
脚本:
function countChars(element, max) {
calculateCount(element.val().length, max);
if (element.val().length > max) {
element.val(element.val().substring(0, max));
}
}
function calculateCount(length, max){
var count = max - length;
if(count < 0){
count = 0;
}
document.getElementById('char_count').innerHTML = count ;
}
问题是在输入文本框中输入大约 150 个字符后,焦点转移回输入文本框的顶部。但是,光标仍按预期保留在末尾。
我尝试使用 scrollTop 位置和焦点,但没有奏效。任何建议都受到高度赞赏。
这个问题只发生在 IE8 中,在 forefox 中可以正常工作。