在以下程序中,由于某种原因,for循环运行一次,然后不再重复。我相信错误在于粗体代码。非常感谢您的帮助。这是一个用于将文本框更改为大写字母,标题大小写等的程序。标题大小写是每个单词大写的首字母。谢谢。

    <html>
    <head>
    <script type="text/javascript">

    function titlize(){
        tLength=tBox.box.value.length
        character=new Array()
        for(i=1; i<tLength+1; i++){
            **character[i]=tBox.box.value.slice(i-1,i)**
            document.write(character[i])
                if(i==1){
                character[i]=character[i].toUpperCase()
                }else if(character[i-1]==" "){
            character[i]=character[i].toUpperCase()
                }else{
            character[i]=character[i].toLowerCase()
            }
            document.write(i)
            document.write(character[i])
        }
    }

    function upperC (){
        toUpperCase(tBox.box.value)
    }

    function verify (){
        if(tBox.uppercase.checked){
        tBox.box.value=tBox.box.value.toUpperCase()
        }
        if(tBox.lowercase.checked){
        tBox.box.value=tBox.box.value.toLowerCase()
        }
        if(tBox.titlecase.checked){
        titlize()
        }
        if(tBox.uppercase.checked){
        tBox.box.value=tBox.box.value.toUpperCase()
        }

    }

    </script>
    </head>
    <body>
    <form name="tBox">
    <input type="text" name="box" value=""><br>
    <input type="checkbox" name="uppercase" onClick=verify(this.form)>Uppercase<br>
    <input type="checkbox" name="lowercase" onClick=verify(this.form)>Lowercase<br>
    <input type="checkbox" name="titlecase" onClick=verify(this.form)>Titlecase<br>
    </form>
    </body>
    </html>

最佳答案

tBox是您的form而不是您的文本框,因此尝试获取它的值,然后该值的长度无效。该代码需要访问您的文本框,因此应为:

   // Scan for the first textbox. Give that textbox a unique id to be
   // able to write a more specific query.
   tLength= document.querySelector("input[type='text']").value.length;

   character=new Array()

   // Not sure why you were writing: i < tLength +1 as that will
   // cause your loop to go one character too far. Remember,
   // arrays start from 0 and length starts from 1.
   for(i=1; i < tLength; i++){


最后,请避免使用document.write(),因为如果在已完成解析的文档上使用,它将导致整个现有文档被丢弃。

07-24 09:50