HTML表单格式问题

时间:2013-04-24 02:40:28

标签: javascript html

我使用简单的方法makeInput()动态创建HTML表单,并且想知道如何使文本输入框每行显示一个,而不是从右到左的方式。截至目前,当您单击“添加课程”按钮时,它会在旧文本旁边添加新文本输入,而不是在新行上添加。这是我到目前为止的代码:

<html>
<head>COURSES</head>
<title>Add Courses</title>
<script type="text/javascript">
var x = 0;
var f = document.createElement("form");
f.setAttribute('method',"post");
f.setAttribute('action',"tron.php");
f.id = "form1";
var s = document.createElement("input"); //input element, Submit button
s.setAttribute('type',"submit");
s.setAttribute('value',"Submit Courses");
f.appendChild(s);
function makeInput()
{

var i = document.createElement("input");
i.type = "text";
i.name = "cname"+ x;
i.id = "cname"+ x;

f.appendChild(i);
document.getElementById("test").appendChild(f);

x = x+1;
document.getElementById("course").innerHTML= "Number of courses: " + x;
}

</script>
<body>
<p id="course">Number of courses: </p>
<button onclick="makeInput()">Add Course</button>
<p id="test"></p>


</body>
</html> 

2 个答案:

答案 0 :(得分:0)

我通常动态创建div和/或跨html表单,以便您也可以将CSS应用于它们。 如果你把你的输入框放在div中,它们应该一次一行,除非你特意添加css否则。

答案 1 :(得分:0)

只是将评论作为答案实施。

更改

document.getElementById("test").appendChild(f);

以下

document.getElementById("test").appendChild(f).innerHTML += '<br />';

这是小提琴:http://jsfiddle.net/UR4y7/