0

我想创建一个表单来添加多个带有标题的图像。因为我是 php 和 mysql 的人。因此,如果我可以在单击 addmore 时获得新字段,那么我可以完成其余的 php mysql 部分。如何设置 var x 以创建新行以提供新的浏览按钮和标题文本字段。

<script type="text/javascript">
<!--
function addMore() {
if (document.getElementById && document.createElement) {
    var x = ;
    document.getElementById('inserthere').appendChild(x);
}
else alert('Your browser doesn\'t support the Level 1 DOM');
}

function delMore() {
if (document.getElementById && document.createElement) {
    var node = document.getElementById('inserthere')
    node.removeChild(node.childNodes[0]);
}
else alert('Your browser doesn\'t support the Level 1 DOM');
}
// -->
</script>

</head>

<body>
<table>
<tr><td>Select Image<input type="file" name="img[]" id="img"  /></td><td>Add caption
<input type="text" name="img_cap[]" id="img_cap" /></td>
</tr>
<span id="inserthere"></span>
</table>

<a href="javascript:addMore()" class="page">add More</a><br />
<a href="javascript:delMore()" class="page">remove</a>

</body>

直到有人回复我要学习,探索互联网并尝试尝试尝试.....

4

1 回答 1

0

这不是最漂亮的方法,但最简单、最快的方法可能是给表一个id属性(例如,'imgtable'),并在您的addMore()函数中执行以下操作:

var x = document.createElement('tr'); // create a new row ready to add
x.innerHTML = '<td>Select Image<input type="file" name="img[]" id="img"  /></td><td>Add caption <input type="text" name="img_cap[]" id="img_cap" /></td>'; // fill it with your code
document.getElementById('imgtable').appendChild(x) // add the new row to the table

但是,当您想了解更多信息时,请务必查找方法,例如document.createDocumentFragment()在将对象实际添加到 DOM 之前将单独声明的元素附加到对象的方法。我使用的innerHTML方法可能更快,但它不像声明文档片段那样整洁并且更难调试。

希望这可以帮助。

于 2013-01-31T14:00:49.433 回答