各位高手请帮忙

hubname1 2004-04-01 12:11:33
我想进行数据库删除
danxuan是个复选框我想把它进行一下控制,在没有选择复选框时弹出alert("请您选择要删除的数据!")
这个功能已经实现,但是当只有一行数据时,我选中该复选框时它还是弹出alert("请您选择要删除的数据!")
有多行数据时就没有事情,请各位高手帮一下看看哪里不对,谢谢了



<script language="JavaScript">
function abc()
{
num=0
len=document.form1.danxuan.length
for(i=0;i<len;i++){
if(document.form1.danxuan[i].checked){
num++
}
}
if(num==0){
alert("请您选择要删除的数据!")
return false
}
return true
}
</script>
...全文
37 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
LxcJie 2004-04-01
  • 打赏
  • 举报
回复
如果只有一个checkbox,那么document.form1.danxuan取到的就不是一个数组了,所以length值是未定义的
HAOSKYZHANG 2004-04-01
  • 打赏
  • 举报
回复
当多行数据时,document.form1.danxuan引用对象数组
当只有一行数据时,document.form1.danxuan引用单个对象,len=document.form1.danxuan.length无效,所以执行不到循环部分。

改写如下:
// 以数组形式返回名称为danxuan的对象
var num = 0 ;
var elements = document.getElementsByName("danxuan");
for(var i = 0 ; i < elements.length ; i++){
if(elements[i].checked) num++;
}

IE6执行正常
wanghr100 2004-04-01
  • 打赏
  • 举报
回复
这样就行了.

<script language="JavaScript">
function abc()
{
num=0
len=document.form1.danxuan;
if(len.length){
for(i=0;i<len.length;i++){
if(len[i].checked)num++;
}
}else {
if(len.checked)num++;
}
if(num==0){
alert("请您选择要删除的数据!")
return false
}
return true
}
</script>
<form name="form1">
<input type=checkbox name="danxuan">
<input type=checkbox name="danxuan">
<input type=button onclick="abc()">
</form>

87,922

社区成员

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

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