问题: 我正在使用按钮复制 div。 div 内是表单的一部分:
<form method="post" action="order-opstellen.php">
<div id="duplicate">
<input type="hidden" id="counter" value="0">
</div>
<input type="button" onclick="duplicate()" value="Add">
<button type="submit">Send</button>
</form>
我正在使用这个脚本:
<script type="text/javascript">
var i = 0;
var original = document.getElementById('duplicate');
function duplicate() {
var clone = original.cloneNode(true);
clone.id = "duplicate" + ++i;
clone.style.clear = "both";
original.parentNode.appendChild(clone);
var tempId = document.getElementById("duplicate" + i);
tempId.childNodes[0].value=i;
}
</script>
如您所见,我正在尝试更改每个输入的值。 每次复制 div 时都将其加 1。 显然它不起作用。我该怎么做?
更新:
所以我已经完成了第一部分的工作。 现在我需要更深入。
<form method="post" action="order-opstellen.php">
<div id="duplicate">
<input type="hidden" id="counter" value="0">
<div class="form-group dispWidth fl">
<label>Productnaam</label>
<select class="form-control dispWidth" name="productnaam"> <?php
$sql_products = "SELECT * FROM product ORDER BY naam";
$results = $conn->query($sql_products)->fetchAll(PDO::FETCH_OBJ);
foreach ($results as $row) {
?>
<option value="<?= $row->productnr ?>"><?= $row->naam ?></option>
<?php }
?>
</select>
</div>
<div class="form-group dispWidth fl ml">
<label>Aantal</label>
<input type="text" name=amountCount class="form-control dispWidth" placeholder="Hoeveelheid">
</div>
</form>
我想要的是每次复制 div 时,选择名称都必须是唯一的。另外,最后一个输入的名称必须是唯一的(amountCount)。 可能是通过连接它们后面的 i 变量(productnaam1、productnaam2、amountCount1.)。怎么办?!
最佳答案
childNodes[0]
是包含换行符和缩进的文本节点。
尝试使用children[0]
。
此外,tempId
指的是与 clone
完全相同的事物,因此只需使用 clone.children[0].value = i;
关于Javascript更改firstChild属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20910303/