0

我试图让用户将某些内容放入文本区域,并且输出应该是他重复 x 次所写的内容,但我收到错误“document.forme 未定义”。

你能帮我理解为什么它是未定义的吗?

我的代码:

 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>input home work</title>
<script type="text/javascript">


 var help= document.forme.tryout.value;

 for (x=1; x<=10;x++){

 function numberCheak (){

     document.write("this is"+"  "+help++);

     }


 }
  </script>


  </head>

 <body>
<form name="forme">

<input name="tryout" type="text" />
  <input type="button" value="click me" onClick="numberCheak();"/>


</form>

</body>
</html>
4

2 回答 2

3

好吧,你有几个问题。第一个是您尝试访问尚不存在的表单元素:脚本位于表单元素上方,因此当您尝试获取表单时表单不存在。如果将脚本移动到页面底部,效果会更好。

其次,循环应该在函数内部,而不是包裹在函数周围。

第三,document.write具有奇怪的副作用并导致文档被重写,并且将阻止脚本正确继续。

这是我修改后的脚本

function numberCheak() {
    var help = document.forme.tryout.value;
    for (var x = 1; x <= 10; x++) {
        document.getElementById("output").innerHTML += help;
    }
}

以及随之而来的 HTML 表单

<form name="forme" id="forme">
    <input name="tryout" type="text" /> 
    <input type="button" value="click me" onclick="numberCheak();" /> 
    <span id="output"></span>
</form>

您可以在 jsFiddle 上看到它的实际效果。

于 2012-06-30T20:33:39.343 回答
-2

表单存储在集合中,可以像这样访问:

var form = document.forms[i]; 或者 var form = document.forms[name];

在你的情况下,i是 0 并且name是形式。

于 2012-06-30T20:16:10.927 回答