Javascript 单击按钮删除文本框
我试图通过点击按钮来动态添加和删除文本框。Javascript 单击按钮删除文本框,javascript,html,forms,function,Javascript,Html,Forms,Function,我试图通过点击按钮来动态添加和删除文本框。add()有效,而remove()无效 $ctra = 1; function add() { var ni = document.getElementById('myDiv'); var numi = document.getElementById('theValue'); var num = (document.getElementById('theValue').value -1)+ 2; numi.value =
add()
有效,而remove()无效
$ctra = 1;
function add() {
var ni = document.getElementById('myDiv');
var numi = document.getElementById('theValue');
var num = (document.getElementById('theValue').value -1)+ 2;
numi.value = num;
var newdiv = document.createElement('div');
var divIdName = 'my'+num+'Div';
newdiv.setAttribute('id',divIdName);
newdiv.innerHTML = "<table><tr><td width=159> Name</td>"+
"<td> <input type='text' name='name' size=20> </td>"+
"<td> Address </td>"+
"<td> <input type='text' name='address' size=20> </td>"+
"<td> Tel. No </td>"+
"<td> <input type='text' name='telno' size=20><td> <button type='button' onclick='remove(divIdName);'>Remove</button></table>";
if($ctra<5){
ni.appendChild(newdiv);
$ctra++;
}
$total = $ctra;
}
请帮我解决这个问题。谢谢大家! 您的代码结构如下所示
<div id='mydiv'>
<div id='my'+num+'div'>
//You had written table code here
</div>
</div>
//您已经在这里编写了表代码
用于删除document.getElementById('myDiv')
的子对象是您动态创建的'my'+num+'div'
。请调查一下
传递此divId以删除..希望您理解您需要将onclick更改为以下内容:
onclick=\"remove('" + divIdName + "');\"
然后像这样调用remove函数
function remove(dId) {
var ni = document.getElementById('myDiv');
ni.removeChild(document.getElementById(dId));
return false;
}
这里有一个jsfiddle正在工作:我认为您需要做类似于ni.removeChild(document.getElementById(dId))代码>并在dId中传递id。。不是你说的名字。你在使用jQuery吗?我已经做了@Pete和@gaurav的建议,因此ni.removeChild(document.getElementById(did))代码>和删除(divIdName)代码>但我想知道为什么它还不起作用。:)我没有使用jQuery,@MoosemanMy代码只有
。我已通过divIdName
更改了remove()
的参数(不再使用'my'+num+'div'
)<代码>'my'+num+'div'
仅在有新添加的文本框时发生。:)哦非常感谢。我不容易想到这一点。但是,它只是删除按钮,而不是整行你确定吗?如果您查看上面链接中的JSFIDLE,它将删除整个行是的,我是。它不是删除整行,只是删除按钮:Ohmm,我不知道为什么它不起作用,因为我只是使用了你在上面粘贴的代码和上面答案中的更改,它对我很好,可能是浏览器问题吗?你在用什么浏览器?你说得对,先生!:)起初我使用的是Chrome,但在你发表评论后,我尝试了IE,现在它可以工作了!有没有办法用Chrome解决这个问题?
function remove(dId) {
var ni = document.getElementById('myDiv');
ni.removeChild(document.getElementById(dId));
return false;
}