有一个文本框, <textarea>, 其中输入的字符不能超过100个字符:1个汉字算2个字符,半角的英文字母、数字、标点符号算1个字符,全角的算2个字符。在输入的时候,在输入框的右侧提示一共还可以输入多少字符,随着输入,这个数字应该是变化的,当输入的字符超出100个字符的时候,这个地方的提示变成红色的字体提示,提示还可以输入负的XX个字符,说明已经超XX个了字符了。 注意输入半角的"{" 或"}" 不计算,比如还可以输入3个字符,输入一个"{"或"}"时,依然还可以输入3个其他字符.
这个功能是在提交前的判断,也是帮助客户在输入的时候,对输入的内容长度有个明白的了解。请高手指教个代码,谢谢!
这个功能是在提交前的判断,也是帮助客户在输入的时候,对输入的内容长度有个明白的了解。请高手指教个代码,谢谢!
<script LANGUAGE=JavaScript>
function textLimitCheck(thisArea, maxLength){
if (thisArea.value.length > maxLength){
alert(maxLength + ' 个字限制. \r超出的将自动去除.');
thisArea.value = thisArea.value.substring(0, maxLength);
thisArea.focus();
}
/*回写span的值,当前填写文字的数量*/
messageCount.innerText =maxLength - thisArea.value.length;
}
</script>
<body>
<textarea name="coms" cols="40" rows="7" onkeyUp="textLimitCheck(this,1000);"></textarea>(限 20-1000 个字符) 还可输入 <font id="messageCount" class="red">1000</font> 个字</span>
</body>
<textarea id="area"></textarea>
<div id="tip"></div> String.prototype.getLength = function() {
var length = 0, value = this.split('');
for (var i = 0, count = value.length; i < count; i++) {
length += value[i].charCodeAt(0) > 128 ? 2 : 1;
}
return length;
}
window.onload = function() {
var area = document.getElementById('area'), tip = document.getElementById('tip');
area.onkeyup = function() {
var text = area.value.replace(/{|}*/g, ''), total = 100 - text.getLength();
tip.innerHTML = total;
if (total < 0) tip.style.color = "Red";
}
}