在input里加上onkeyup="this.value=this.value.toUpperCase();",或者小写,按左右键就失效了,光标会停留在最后,不能回去,测试为IE7,别的浏览器没试。请问应该怎么解决呢?

解决方案 »

  1.   

    参考如下代码:<script type="text/javascript">
    function viewPage() {
        var page = window.open('', '', '');
        page.opener = null;
        page.document.write('<html><a href="http://blog.csdn.net/zswang">o(╯□╰)o</a><script type="text/javascript">alert("Zswang 路过。");<' + '/script></html>');
        page.document.close();
    }
    </script>
    <input type="button" onclick="viewPage()">
      

  2.   

    贴错地了不过楼主的问题可以这样解决:
    <input type="text" onkeyup="if (this.value != this.value.toUpperCase()) this.value=this.value.toUpperCase();"/>如果没有发生变化就不用赋值
      

  3.   

    当然啦,你的触发事件的代码"this.value=this.value.toUpperCase();"是针对整个值的,所以会使得光标停在值的最后的。
    而你想做的是针对某个字母。当按左右键的时候,一样会触发你的时间,一样会运行="this.value=this.value.toUpperCase();"这句代码,于是运行完代码之后,光标当然就停在最后了。我有事要走开,你可以考虑用event.keyCode来做。
      

  4.   

    2楼的方法可以,请问
    function lCase(obj){if (obj.value != obj.value.toLowerCase()) obj.value=obj.value.toLowerCase();}
    在FF下,为什么用onkeyup=lCase(this)调用会出现lCase is not defined 呢?
      

  5.   

    ff下正常:
    <html>
    <body>
    <input type="text" onkeyup="lCase(this)"/>
    <script type="text/javascript">
    function lCase(obj) {
    if (obj.value != obj.value.toLowerCase())
    obj.value = obj.value.toLowerCase();
    }
    </script>
    </body>
    </html>
      

  6.   

    把我的问题解决了,呵呵.onkeyup是所有的key按下都变大写,在firefox下没有这个问题.在所有的ie下才存在这个问题.thank you!