本人正在做一个用户信息管理的模块.
以下这段是我用JS根据单选最后得到用户的IDfunction shan(){
var length = document.fm.ro.length;
var i = -1;
var userId = "";
alert(length)
while(i<length){
if(document.fm.ro[i].checked){
userId = document.fm.ro[i].value;
break;
}
i++;
}
if(userId == ""){
alert("请选择需要删除的用户!");
return false;
}
//确认选框
alert(length)
if(confirm("你确定删除吗?")){
document.fm.action="shan.do";
document.fm.submit();
}
} 问题出在,如果到最后只剩一条信息了,这段JS将无法判断,无法进入循环. 选中最后的一条信息,自然就弹出 ("请选择需要删除的用户"),
以下这段是我用JS根据单选最后得到用户的IDfunction shan(){
var length = document.fm.ro.length;
var i = -1;
var userId = "";
alert(length)
while(i<length){
if(document.fm.ro[i].checked){
userId = document.fm.ro[i].value;
break;
}
i++;
}
if(userId == ""){
alert("请选择需要删除的用户!");
return false;
}
//确认选框
alert(length)
if(confirm("你确定删除吗?")){
document.fm.action="shan.do";
document.fm.submit();
}
} 问题出在,如果到最后只剩一条信息了,这段JS将无法判断,无法进入循环. 选中最后的一条信息,自然就弹出 ("请选择需要删除的用户"),
如果只剩一条数据,再选定单选框就会弹出 null
var userId = "";
alert(length)
while(i<length){
if(document.fm.ro[i].checked){--------------------------------i上来等于 -1
弹出窗口说 length未定义
{
var length = document.fm.ro.length;
var i = -1;
var userId = "";
alert(length)
}
document.getElementsByName("ro");这种方法来取得。前提是你的checkbox的name必须一样。这样无论几个都被解释为数组
JS本身也不太熟悉,具体修改的话,应该是改些地方.
这样就能获取到长度了
<input type="checkbox" name="selCheck">
<input type="checkbox" name="selCheck">
<input type="checkbox" name="selCheck">
<input type="checkbox" name="selCheck">
<input type="checkbox" name="selCheck">
<input type="checkbox" name="selCheck">
<input type="checkbox" name="selCheck">javascript中
// 这个永远是数组
var selCheck = document.getElementsByTagName("selCheck")所以可以安心.length
var selChecks = document.getElementsByTagName("selCheck");var userId = "";
for (var index = 0; index < selChecks.length; index++) {
if (selCheck[index].checked) {
userId = selChecks[index].value;
break;
}
}
if(userId == ""){
alert("请选择需要删除的用户!");
return false;
}
//确认选框
if(confirm("你确定删除吗?")){
document.fm.action="shan.do";
document.fm.submit();
}
}这里的selCheck用你的名字代替