js 删除checkbox

slysmart 2012-04-16 04:08:53
如题,点del按钮删除选中的checkbox(在<td id="test">中所有checkbox),那位帮改下deleteAll(obj),TKS
	     <tr align="left">
<td>抄送人:</td>
<td id="test"><input type="text" id="carbon" width="50">
<select size=1 name="sd_carboncopy" id="sd_carboncopy">
<option value="">无</option>
<%do while not rs.eof%>
<option value="<%=rs("username")%>"><%=rs("name")%></option>
<%
rs.movenext
loop
rs.close
%>
</select>
<input type="button" value="add" onClick="setname('test');">
<input type="button" value="del" onClick="deleteAll('cp');"></td>
<script>
function setname(obj)
{
var copy=document.getElementById("sd_carboncopy").value;
document.getElementById(obj).innerHTML += "<input type='checkbox' name='cp'>" + copy + "</input>";
}
function deleteAll(obj){
var answer = document.getElementsByName(obj)
var len = answer.length;
var checked = false;
for(var i = 0 ; i < len ; i++)
{
if(answer[i].checked)
{
checked = true;
break;
}
}
if(checked)
{
return confirm("确定要删除吗?");
}
else
{
alert("对不起,你没有选择要删除的对象!");
return false;
}
}
</script>
</tr>
...全文
493 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzhiyuan 2012-04-17
  • 打赏
  • 举报
回复
楼主 <input type="checkbox" name="aa" >a</input>不是标准写法
标准写法就是1:<input type="checkbox" name="aa" />a
或者 2:<input type="checkbox" name="aa" /><lable>a</label>
因此1情况就是同时删除下一个文本节点,2的情况就是删除下一个元素节点,
分别用next(e,3),和next(e,1)来取得并删除就行了


<input type="checkbox" name="aa" />a
<input type="checkbox" name="aa" />b
<input type="checkbox" name="aa" />c
<input type="checkbox" name="aa" />d
<input type="button" value="del" onclick="removechk()" />
</div>
<script type="text/javascript" >

function removechk() {
var os = document.getElementsByName("aa");
for (var i = os.length-1; i >= 0; i--) {
if (os[i].checked) {
os[i].parentNode.removeChild(next(os[i], 3));//如果是删除下一个元素节点,则next(os[i], 1)
os[i].parentNode.removeChild(os[i]);
}
}
}

function next(elem, nodetype) {//获得下一个节点
//节点类型,1 元素element,文本text 3,更多节点类型google:html nodetype
do {
elem = elem.nextSibling;
} while (elem && elem.nodeType != nodetype);
return elem;
}
</script>
slysmart 2012-04-17
  • 打赏
  • 举报
回复
问题还没完全解决,9楼代码换成这样后,如何连同checkbox后的abcd也删除了??
<div>
<input type="checkbox" name="aa">a</input>
<input type="checkbox" name="aa">b</input>
<input type="checkbox" name="aa">c</input>
<input type="checkbox" name="aa">d</input>
<input type="button" value="del" onclick="removechk()" />
</div>
<script type="text/javascript" >

function removechk() {
var os = document.getElementsByName("aa");
for (var i = os.length-1; i >= 0; i--) {
if (os[i].checked) {
os[i].parentNode.removeChild(os[i]);
}
}
}
</script>
testhita 2012-04-16
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20050722/15/4161788.html
rainVSjava 2012-04-16
  • 打赏
  • 举报
回复
你的程序没有删除操作 能删除才怪呢 下面那样写应该可以说 但是注意 i相当于del函数 是全局变量 不能在for循环中定义 要在 for外面定义 相信你懂的 不用多说了
if(checked)
{
//return confirm("确定要删除吗?");
answer[i].parentNode.removeChild(answer[i]);
}

风一样的大叔 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

if(checked)
{
//return confirm("确定要删除吗?");
answer[i].parentNode.removeChild(answer[i]);
}

这样改可以删掉checkbox了,但后面“ + copy + ”还在,汗啊
[/Quote]你在每个input前面加个div,删div就可以了
三石-gary 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 的回复:]

if(checked)
{
//return confirm("确定要删除吗?");
answer[i].parentNode.removeChild(answer[i]);
}

这样改可以删掉checkbox了,但后面“ + copy + ”还在,汗啊
[/Quote]
哈哈。。。
slysmart 2012-04-16
  • 打赏
  • 举报
回复
if(checked)
{
//return confirm("确定要删除吗?");
answer[i].parentNode.removeChild(answer[i]);
}

这样改可以删掉checkbox了,但后面“ + copy + ”还在,汗啊
三石-gary 2012-04-16
  • 打赏
  • 举报
回复
你那里要写个判断。。当点击确定的时候执行什么。。点击取消执行什么。。
slysmart 2012-04-16
  • 打赏
  • 举报
回复
	     <tr align="left">
<td>抄送人:</td>
<div>
<td id="test"><input type="text" id="carbon" width="50">
<select size=1 name="sd_carboncopy" id="sd_carboncopy">
<option value="">无</option>
<%do while not rs.eof%>
<option value="<%=rs("username")%>"><%=rs("name")%></option>
<%
rs.movenext
loop
rs.close
%>
</select>
<input type="button" value="add" onClick="setname('test');">
<input type="button" value="del" onClick="deleteAll('cp');"></td></div>
</tr>
<script>
function setname(obj)
{
var copy=document.getElementById("sd_carboncopy").value;
document.getElementById(obj).innerHTML += "<input type='checkbox' name='cp'>" + copy + "</input>";
}
function deleteAll(obj){
var answer = document.getElementsByName(obj)
var len = answer.length;
var checked = false;
for(var i = 0 ; i < len ; i++)
{
if(answer[i].checked)
{
checked = true;
break;
}
}
if(checked)
{
return confirm("确定要删除吗?");
answer[i].parentNode.removeChild(answer[i]);
}
else
{
alert("对不起,你没有选择要删除的对象!");
return false;
}
}
</script>

9楼的方法按说没问题,我这么改,咋还不行呢?问题再那?
meng1503159 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

<div>
<input type="checkbox" name="aa" />
<input type="checkbox" name="aa" />
<input type="checkbox" name="aa" />
<input type="checkbox" name="aa" />
<input type="button" value="del"……
[/Quote]

刚才引用错了
meng1503159 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

引用 6 楼 的回复:

引用 4 楼 的回复:

不报错,弹出"确定要删除吗?",点确定后没反应

你都没写删除功能。。点了当然没反应了。。

js没学过,尝试写没写出来啊
[/Quote]

正解
wzhiyuan 2012-04-16
  • 打赏
  • 举报
回复
<div>
<input type="checkbox" name="aa" />
<input type="checkbox" name="aa" />
<input type="checkbox" name="aa" />
<input type="checkbox" name="aa" />
<input type="button" value="del" onclick="removechk()" />
</div>
<script type="text/javascript" >

function removechk() {
var os = document.getElementsByName("aa");
for (var i = os.length-1; i >= 0; i--) {
if (os[i].checked) {
os[i].parentNode.removeChild(os[i]);
}
}
}


</script>
slysmart 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

引用 4 楼 的回复:

不报错,弹出"确定要删除吗?",点确定后没反应

你都没写删除功能。。点了当然没反应了。。
[/Quote]
js没学过,尝试写没写出来啊
slysmart 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

你在test里面再加一个div或者其他标记,然后把新增的checkbox放在这里面,删除全部的时候直接把这个div的内容清空即可。
[/Quote]
那如何处理不需要删除的 checkbox 了?
三石-gary 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

不报错,弹出"确定要删除吗?",点确定后没反应
[/Quote]
你都没写删除功能。。点了当然没反应了。。
三石-gary 2012-04-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

运行报什么错?!
[/Quote]
看错了。。你想要实现删除功能是吧?
slysmart 2012-04-16
  • 打赏
  • 举报
回复
不报错,弹出"确定要删除吗?",点确定后没反应
p2227 2012-04-16
  • 打赏
  • 举报
回复
你在test里面再加一个div或者其他标记,然后把新增的checkbox放在这里面,删除全部的时候直接把这个div的内容清空即可。
乌镇程序员 2012-04-16
  • 打赏
  • 举报
回复
哪来的checkbox控件?
三石-gary 2012-04-16
  • 打赏
  • 举报
回复
运行报什么错?!

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧