日期:2014-05-16  浏览次数:20413 次

js onkeyup bug
输入几个字后,为什么不能使用 “向左键”呢?有没有什么函数可以代替?
<script>  
function a(){  
  document.getElementById("test").value = document.getElementById("test").value.toUpperCase();  
}  
function b(){  
  document.getElementById("test2").value = document.getElementById("test2").value.toLowerCase();  
}  
</script>  
在这里输入小写,会自动转为大写:<input type=text id=test onkeyup="a()"><br/>  
在这里输入大写,会自动转为小写:<input type=text id=test2 onkeyup="b()">  



------解决方案--------------------
不是bug,每次 input改变了value ,光标肯定会移动到最后的。。

楼主是不是 想实现这样的效果
HTML code

<script>   
function a(e){
    if(e.keyCode != 37){     // 如果不是 键盘 左箭头。
     document.getElementById("test").value = document.getElementById("test").value.toUpperCase();      
    }
 
}   
function b(){   
  document.getElementById("test2").value = document.getElementById("test2").value.toLowerCase();   
}   
</script>   
在这里输入小写,会自动转为大写:<input type=text id=test onkeyup="a(event)"><br/>   
在这里输入大写,会自动转为小写:<input type=text id=test2 onkeyup="b()">

------解决方案--------------------
JScript code

function OnKeyPress(o,e){
    var evt = e || event;
    var keyCode = evt.keyCode;
    if(96 < evt.keyCode && evt.keyCode < 123){
        evt.keyCode = evt.keyCode - 32;//大写转为小写
    }
}