2011-10-06 156 views
0
<HTML> 
    <HEAD> 
    <TITLE>Test Input</TITLE> 
    <SCRIPT LANGUAGE="JavaScript"> 

    function validate (form) { 
    var TestVar = form.inputbox.value; 
    myArray = TestVar.split(','); 
document.write(myArray.length); 

    } 
    </SCRIPT> 
    </HEAD> 
    <BODY> 
    <FORM NAME="myform" ACTION="" METHOD="GET">Enter something in the box: <BR> 
    <INPUT TYPE="text" NAME="inputbox" VALUE="" OnBlur="validate(this.form)" onkeydown="validate(this.form)" onkeyup="validate(this.form)" ><P> 

<script type="text/javascript">validate(this.form);</script> 
    </FORM> 
    </BODY> 
    </HTML> 

有人可以帮我解决这个问题。只要我按下一个键,它就结束了。 我希望它无限期地更新。 例如 输入:您好 输出:1个 输入打招呼,好,再见 输出:3 ...javascript逗号计数器

+2

在文档加载后不要使用'document.write()'。它将取代整个文件。 –

+0

明白了。 nick

回答

2

当您将文件加载后做document.write(),它会清除当前的文档并开始书写新的一。文件加载完毕后,请勿使用document.write(),除非极少数情况下您需要这种效果。这不是你想要的。

如果您只是想了解myArray.length值用于调试目的,请使用console.log()而不是document.write(),然后在控制台/调试窗口中查看它。

更好的办法是使用javascript调试器(Firebug for Firefox或Chrome,Opera和Safari中的内置调试器),并在validate函数中设置一个断点,并在发生变化时检查该变量。

0
<HTML> 
<HEAD> 
<TITLE>Test Input</TITLE> 
</HEAD> 
<BODY> 
<form name="myForm"> 
<input type="text" id="inputbox" onkeydown="validate(form.this)"/> 
<input type="text" name="textf"/> 
</FORM> 
<SCRIPT LANGUAGE="JavaScript"> 
function validate() { 
var TestVar = myForm.inputbox.value; 
var myArray = TestVar.split(','); 
document.myForm.textf.value = myArray.length; 

} 
</SCRIPT> 
</BODY> 
</HTML> 

这很简单。