今日,一朋友遇到一TEXTAREA问题,原以为手到擒来,没想到遇到点问题。
(比如说一个TEXTAREA允许最大输入数10个字):
window.onload=function()
{
document.getElementById('txt').onkeydown=function()
{
var val = document.getElementById('txt').value;
if(val.length>10) {
event.returnValue=false;
document.getElementById('txt').value = val.substring(0,10);
}
}
}
这个方法,当输入中文,日文的时候,有问题。
输入中文的时候:比如 第一次输入“我们都是中国人”,第二次输入“我们都是中国人”,这个时候,TEXTAREA中显示的是“我们都是中国人我们都是中国人”,当再按一次键的时候,才会document.getElementById('txt').value = val.substring(0,10);
输入日文的时候更奇怪,当超过10个字后,再按键的时候,TEXTAREA中空了 ==!
这个问题应该很多人知道解决方法吧,(类似应用:论坛发言限定最大字数),各位大侠帮个忙,解答下。谢谢先!
(比如说一个TEXTAREA允许最大输入数10个字):
window.onload=function()
{
document.getElementById('txt').onkeydown=function()
{
var val = document.getElementById('txt').value;
if(val.length>10) {
event.returnValue=false;
document.getElementById('txt').value = val.substring(0,10);
}
}
}
这个方法,当输入中文,日文的时候,有问题。
输入中文的时候:比如 第一次输入“我们都是中国人”,第二次输入“我们都是中国人”,这个时候,TEXTAREA中显示的是“我们都是中国人我们都是中国人”,当再按一次键的时候,才会document.getElementById('txt').value = val.substring(0,10);
输入日文的时候更奇怪,当超过10个字后,再按键的时候,TEXTAREA中空了 ==!
这个问题应该很多人知道解决方法吧,(类似应用:论坛发言限定最大字数),各位大侠帮个忙,解答下。谢谢先!
嗯,如果单纯的keyup,右键粘贴就没办法挡了。
处理改变可以参考:http://www.cnblogs.com/sohighthesky/archive/2010/01/16/1649530.html
<script>
window.onload=function()
{
document.getElementById('txt').onkeydown=function()
{
test();
}
document.getElementById('txt').onkeyup=function()
{
test();
}
document.getElementById('txt').onchange=function()
{
test();
}
}
function test(){
var val = document.getElementById('txt').value;
if(val.length>10) {
event.returnValue=false;
document.getElementById('txt').value = val.substring(0,10);
}
}
</script>
<textarea id="txt"></textarea>