我试图让用户把东西放到文本区域,输出应该是他写的重复x次,但是我得到一个错误“document.forme is undefined”。
你能帮我理解为什么它没有定义吗?
我的代码:
<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>
答案 0 :(得分: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>
答案 1 :(得分:-2)
表单存储在集合中,可以像这样访问:
var form = document.forms[i];
要么
var form = document.forms[name];
在您的情况下,i
为0,而name
是forme。
答案 2 :(得分:-2)
也许您应该尝试使用document.getElementsByName("forme")[0]
代替document.forme
?