嘿伙计们,我想知道如何从javascript中的表单获取信息,我发现了使用对象形式的方法,但我不想工作(返回undefined),因为对象未定义。你知道我在做错了吗,你能附上一些解释吗?我知道getElement函数可以做什么,但我想了解为什么这个解决方案不起作用。 此致!
<script type="text/javascript">
function cos(sth){
var par = document.getElementById("para1");
par.style.color = 'blue';
par.style.fontSize="30px";
par.style.fontFamily="Impact,Charcoal,sans-serif";
}
function getFormValue(){
document.write(5+6);
var doc = document.forms["myForm"]["email"].value;
// OR
var doc = document.forms[0].elements["name"];
document.write(doc);
}
</script>
</head>
<body>
<p id ="para1">JavaScript Exercises - w3resource</p>
<div>
<button onclick="cos();">Style</button>
</div>
<form name="myForm">
<input type="text" name="email"/>
<button onclick="getFormValue()">
</form>
</body>
</html>
答案 0 :(得分:1)
document.write(5+6); var doc = document.forms["myForm"]["email"].value;
由于页面已加载,因此文档处于关闭状态。
调用document.write
隐式调用document.open
来创建新文档。
然后,您将11
写入此文档。
接下来,您尝试获取表单元素。它并不存在于这份新文件中。
然后您尝试从中获取电子邮件字段。由于您没有表单,因此会出错。
如果你解决了这个问题:
var doc = document.forms["myForm"]["email"].value; // OR var doc = document.forms[0].elements["name"]; document.write(doc);
您阅读了电子邮件字段的值,并将其分配给doc
。
然后用elements["name"]
覆盖它。
没有名为name
的表单控件,因此您获得了undefined
。
var doc = document.forms["myForm"]["email"].value;
document.write(doc);
......工作正常。你只需要移除你周围的垃圾来打破它。