如何通过 Javascript 动态删除表单元素?
How can dynamically remove element of form by Javascript?
我使用 Javascript 创建了一个包含动态元素的表单。
我可以添加元素,但如何从表单中删除它们?
我无法解决问题。我很困惑! :(
我的代码:
<script type="text/javascript">
//+Element
function addElement(div) {
var ni = document.getElementById(div);
var numi = document.getElementById('numVal');
var num = (document.getElementById('numVal').value -1)+ 2;
numi.value = num;
var newdiv = document.createElement('div');
newdiv.setAttribute('id',num);
var unum="'"+div+"','"+num+"'";
newdiv.innerHTML ='<input id="t" type="tel" placeholder="Tel.'+num+'" name="t'+num+1+'"><img id="del" onClick="removeElement('+unum+');" alt="del" src="images/del.gif" />';
ni.appendChild(newdiv);
}
//-Element
function removeElement(divNum,div) {
var d = document.getElementById(div);
var olddiv = document.getElementById(divNum);
d.removeChild(olddiv);
}
</script>
<form>
<input type="hidden" value="0" id="numVal" />
<div id="m">
<div id="h125">
<div class="fb">
<input id="t" type="tel" placeholder="Tel.">
<img id="add" Alt="add" src="images/add.gif" onclick="addElement('h125');" />
</div>
</div>
</div>
</form>
document.getElementsById(divNum);
应该读作:document.getElementById(divNum);
您需要删除元素后的 's'。
更新
对不起,我没有测试才回答。当你在你的 addElement(div)
函数中声明 var unum
时,你的变量名是倒过来的。它应该读作 var unum="'"+num+"','"+div+"'";
这就是您要实现的目标吗?如果是这样,当您在 removeElement
函数中混淆 ids 时。
//+Element
function addElement(div) {
var ni = document.getElementById(div);
var numi = document.getElementById('numVal');
var num = (document.getElementById('numVal').value -1)+ 2;
numi.value = num;
var newdiv = document.createElement('div');
newdiv.setAttribute('id',num);
var unum="'"+div+"','"+num+"'";
newdiv.innerHTML ='<input id="t" type="tel" placeholder="Tel.'+num+'" name="t'+num+1+'"><img id="del" onClick="removeElement('+unum+');" alt="del" src="images/del.gif" />';
ni.appendChild(newdiv);
}
//-Element
function removeElement(divNum,div) {
var d = document.getElementById(divNum);
var olddiv = document.getElementById(div);
d.removeChild(olddiv);
}
<form>
<input type="hidden" value="0" id="numVal" />
<div id="m">
<div id="h125">
<div class="fb">
<input id="t" type="tel" placeholder="Tel.">
<img id="add" Alt="add" src="images/add.gif" onclick="addElement('h125');" />
</div>
</div>
</div>
</form>
我使用 Javascript 创建了一个包含动态元素的表单。 我可以添加元素,但如何从表单中删除它们? 我无法解决问题。我很困惑! :(
我的代码:
<script type="text/javascript">
//+Element
function addElement(div) {
var ni = document.getElementById(div);
var numi = document.getElementById('numVal');
var num = (document.getElementById('numVal').value -1)+ 2;
numi.value = num;
var newdiv = document.createElement('div');
newdiv.setAttribute('id',num);
var unum="'"+div+"','"+num+"'";
newdiv.innerHTML ='<input id="t" type="tel" placeholder="Tel.'+num+'" name="t'+num+1+'"><img id="del" onClick="removeElement('+unum+');" alt="del" src="images/del.gif" />';
ni.appendChild(newdiv);
}
//-Element
function removeElement(divNum,div) {
var d = document.getElementById(div);
var olddiv = document.getElementById(divNum);
d.removeChild(olddiv);
}
</script>
<form>
<input type="hidden" value="0" id="numVal" />
<div id="m">
<div id="h125">
<div class="fb">
<input id="t" type="tel" placeholder="Tel.">
<img id="add" Alt="add" src="images/add.gif" onclick="addElement('h125');" />
</div>
</div>
</div>
</form>
document.getElementsById(divNum); 应该读作:document.getElementById(divNum);
您需要删除元素后的 's'。
更新
对不起,我没有测试才回答。当你在你的 addElement(div)
函数中声明 var unum
时,你的变量名是倒过来的。它应该读作 var unum="'"+num+"','"+div+"'";
这就是您要实现的目标吗?如果是这样,当您在 removeElement
函数中混淆 ids 时。
//+Element
function addElement(div) {
var ni = document.getElementById(div);
var numi = document.getElementById('numVal');
var num = (document.getElementById('numVal').value -1)+ 2;
numi.value = num;
var newdiv = document.createElement('div');
newdiv.setAttribute('id',num);
var unum="'"+div+"','"+num+"'";
newdiv.innerHTML ='<input id="t" type="tel" placeholder="Tel.'+num+'" name="t'+num+1+'"><img id="del" onClick="removeElement('+unum+');" alt="del" src="images/del.gif" />';
ni.appendChild(newdiv);
}
//-Element
function removeElement(divNum,div) {
var d = document.getElementById(divNum);
var olddiv = document.getElementById(div);
d.removeChild(olddiv);
}
<form>
<input type="hidden" value="0" id="numVal" />
<div id="m">
<div id="h125">
<div class="fb">
<input id="t" type="tel" placeholder="Tel.">
<img id="add" Alt="add" src="images/add.gif" onclick="addElement('h125');" />
</div>
</div>
</div>
</form>