在javascript中创建表单元素

时间:2014-05-05 15:54:05

标签: javascript forms appendchild createelement

我无法在body标签中创建表单元素并直接在Javascript中显示它。

这是我的代码:

document.addEventListener('load', function(event){
    var elemBody = document.getElementsByTagName('body');
    var elemForm = document.createElement('form');
});

我已经尝试过appendChild,但我没有成功。

(我是法国人)

1 个答案:

答案 0 :(得分:1)

如上所述,

elemBody包含一个数组,该数组又包含一个元素,即html文档的单个body元素。调用elemBody.appendChild将导致错误,因为您尝试将elemForm添加到数组(使用未为数组定义的方法),而不是DOM元素。如果您按以下方式更新代码,则可能会获得更好的成功:

var elemBody = document.getElementsByTagName('body')[0];
var elemForm = document.createElement('form');
elemBody.appendChild(elemForm);

当然,如果不对其进行样式设置或向表单添加一些实际内容,您将无法检测到新表单可视的存在。

<强>更新

这比评论更容易。如果您希望能够看到您在视觉上添加的内容,请尝试以下操作:

var elemBody = document.getElementsByTagName('body')[0];
var elemForm = document.createElement('form');
elemForm.appendChild(document.createElement('textarea'));
elemBody.appendChild(elemForm);

更新2

这是一个完整的测试文件:

<html>
<head>
<script type="text/javascript">
function doit() {
  var elemBody = document.getElementsByTagName('body')[0];
  var elemForm = document.createElement('form');
  elemForm.appendChild(document.createElement('textarea'));
  elemBody.appendChild(elemForm);
}
</script>
</head>
<body onload="doit()"></body>
</html>