在处理当用户输入多少字同时显示剩余输入字数时,在ie11下实现,然测试提出在ie9下原本实现的方法无法实现,故去查找方法,发现onpropertychange在ie9下无法触发,故将触发条件增加即可,
1.增加onpaste当用户粘贴时触发,
2.onfocus当用户取消焦点时触发,
3.onkeyup当用户键盘按键松开时触发,
代码如下:
<textarea name="content" id="suggestionContent"
**onpaste="return onCharsChange(this);"
onpropertychange="return onCharsChange(this);"
onfocus="return onCharsChange(this);"
onkeyup="return onCharsChange(this);"**
cols="45" rows="5"
class="textarea easyui-validatebox"></textarea>
js代码如下:
var cap_max = 100;//可发送的字数
function onCharsChange(varField) {
var suggestionContent = document.getElementById("suggestionContent");
var charsmonitor1 = document.getElementById("charsmonitor1");
var charsmonitor2 = document.getElementById("charsmonitor2");
var leftChars = getLeftChars(varField);
if (leftChars >= 0) {
//charsmonitor1.value=cap_max-leftChars;
//charsmonitor2.value=leftChars;
charsmonitor1.innerHTML = cap_max - leftChars;
charsmonitor2.innerHTML = leftChars;
return true;
} else {
charsmonitor1.value = cap_max;
charsmonitor2.value = "0";
//window.alerts("消息内容超过字数限制。");
var len = suggestionContent.value.length + leftChars;
suggestionContent.value = suggestionContent.value.substring(0, len);
leftChars = getLeftChars(suggestionContent);
if (leftChars >= 0) {
charsmonitor1.innerHTML = cap_max - leftChars;
charsmonitor2.innerHTML = leftChars;
}
return false;
}
}
function getLeftChars(varField) {
var cap = cap_max;
var leftchars = cap - varField.value.length;
return (leftchars);
}