如何从JavaScript中的表单获取信息?

时间:2018-01-25 11:43:20

标签: html forms

嘿伙计们,我想知道如何从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>

1 个答案:

答案 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);

......工作正常。你只需要移除你周围的垃圾来打破它。