有关复选框的问题???

ming470612141 2008-01-25 11:57:55
最近要写个东西,页面的复选框是动态生成的,有时会有多个相同名称的复选框,有时只有一个!
但现在我要在操作时提示必须至少选一项进行操作。苦于当只有一个复选框时用js得到的就不是数组,
而当有多个时就是一个数组,现在不知道怎么将两者结合起来判断,请大家帮忙解决一下!!

部分代码如下:
function validate(){
var flag = false;
var checkArray = document.all("checkedExcel");
for(i=0;i<checkArray.length;i++){
if(checkArray[i].checked){
flag = true;
break;
}
}
if(flag==false){
alert("请选择一项进行生成!");
}else{
if(!window.confirm("确认进行此操作吗?")){
flag = false;
}
}
return flag;
}
...全文
425 53 打赏 收藏 转发到动态 举报
写回复
用AI写文章
53 条回复
切换为时间正序
请发表友善的回复…
发表回复
pockey0127 2008-01-30
  • 打赏
  • 举报
回复
49楼精简! 呵呵 一路看下来好累啊,突然有了个轻松的!
tantaiyizu 2008-01-29
  • 打赏
  • 举报
回复
呵呵
剑心永远OK 2008-01-29
  • 打赏
  • 举报
回复
那么多人回答一个问题.纯粹路过
xhatax 2008-01-29
  • 打赏
  • 举报
回复
受教了 谢谢
xf_pan 2008-01-28
  • 打赏
  • 举报
回复
给一个最简单的,

<script language="javaScript">
var num=0;

function check_checkbox(){
var obj=event.srcElement;
if(obj.checked==true)
{
num++;
}else
{
num--;
}
}
<input type="checkbox" id="" onclick="check_checkbox()"/>
在你的提交判断里加一条,
if(num){alert("请至少选择一条!");}
anliuty 2008-01-27
  • 打赏
  • 举报
回复
在asp.net下面服务器控件是绝不允许出现多个相同的id的,但对于html控件,只要不设置runat=server
出现相同的id虽然编辑器会报id相同的错误,但是照样可以运行的,
而且在js里面用document.getElementById(id)得到的就是一个对象数组,

而在纯粹的html的编辑中,出现多个相同id的元素,是没有问题的
  • 打赏
  • 举报
回复
用if else是为了防止一个错误!
objs[i].checked= true;
就是防止这个出错
只有一个CheckBox的时候
objs[i].checked会出错!
经常会碰到这个情况!
mingxuan3000 2008-01-26
  • 打赏
  • 举报
回复
<script language="JavaScript" type="text/JavaScript">
function validate(){
var flag = false;
var objs = document.getElementById("checkedExcel");
if(objs.length> 1){
alert("1")
for(i=0;i <objs.length;i++){
if(objs[i].checked){
objs[i].checked = true;
flag = true;
break;
}
}
}else{
if(objs.checked){
alert("2")
objs.checked = true;
flag = true;

}

}
if(flag==false){
alert("请选择一项进行生成!");
}else{
if(!window.confirm("确认进行此操作吗?")){
flag = false;
}
}
return flag;
}
</script>
<form action="" method="post" name="form">
<input id="checkedExcel" type="checkbox" value="">
<input id="checkedExcel" type="checkbox" value="">
<input id="checkedExcel" type="checkbox" value="">
<input name="submit" type="submit" id="form" value="提交" onClick="alert(validate())">
</form>


你这个 你看看选一个 和选2个所走的路经

如果我要求必须选2个才能提交呢?
  • 打赏
  • 举报
回复
当然!document.getElementsByName所以一般都用他!而不用ID
因为ID那个太麻烦!还容易出错!
  • 打赏
  • 举报
回复
我也比较建议LZ使用document.getElementsByName
ID这个东西不好玩!玩不好就一堆错误!
mingxuan3000 2008-01-26
  • 打赏
  • 举报
回复
用document.getElementsByName

可以不用 if else
直接循环
  • 打赏
  • 举报
回复
可能他的情况跟我做的那例子不一样,当然用你说的那个document.getElementsByName是比较合理
而且不容易出错,用ID的话比较容易出错稍微不注意就出错了
mingxuan3000 2008-01-26
  • 打赏
  • 举报
回复


受教了 谢谢
  • 打赏
  • 举报
回复
再说!不喜欢ID 的话就用name,那部分改下就可以了
<script language="JavaScript" type="text/JavaScript">
function validate(){
var flag = false;
var objs = document.getElementsByName("checkedExcel");
if(objs.length> 1){
for(i=0;i <objs.length;i++){
if(objs[i].checked){
objs[i].checked = true;
flag = true;
break;
}
}
}else{
if(objs.checked){
objs.checked = true;
flag = true;

}

}
if(flag==false){
alert("请选择一项进行生成!");
}else{
if(!window.confirm("确认进行此操作吗?")){
flag = false;
}
}
return flag;
}
</script>

这东西又不是死的!看你怎么去灵活运用!
  • 打赏
  • 举报
回复
你肯定没用过ID,就自以为ID不能获取!你用我给你的例子去试!如果ID获取不到,那你再来找我!
  • 打赏
  • 举报
回复
哈哈!大哥!我都发例子发给你,让你去试,你还说ID没用!我实在无语了!
  • 打赏
  • 举报
回复
哎!看来你对id和name还是搞不清楚啊!然后随口就说有错
  • 打赏
  • 举报
回复
这个是3个的
<script language="JavaScript" type="text/JavaScript">
function validate(){
var flag = false;
var objs = document.getElementById("checkedExcel");
if(objs.length> 1){
for(i=0;i <objs.length;i++){
if(objs[i].checked){
objs[i].checked = true;
flag = true;
break;
}
}
}else{
if(objs.checked){
objs.checked = true;
flag = true;

}

}
if(flag==false){
alert("请选择一项进行生成!");
}else{
if(!window.confirm("确认进行此操作吗?")){
flag = false;
}
}
return flag;
}
</script>
<form action="" method="post" name="form">
<input id="checkedExcel" type="checkbox" value="">
<input id="checkedExcel" type="checkbox" value="">
<input id="checkedExcel" type="checkbox" value="">
<input name="submit" type="submit" id="form" value="提交" onClick="validate()">
</form>

下面这个是1个的!拿去试下,如果运行错误你来找我!
<script language="JavaScript" type="text/JavaScript">
function validate(){
var flag = false;
var objs = document.getElementById("checkedExcel");
if(objs.length> 1){
for(i=0;i <objs.length;i++){
if(objs[i].checked){
objs[i].checked = true;
flag = true;
break;
}
}
}else{
if(objs.checked){
objs.checked = true;
flag = true;

}

}
if(flag==false){
alert("请选择一项进行生成!");
}else{
if(!window.confirm("确认进行此操作吗?")){
flag = false;
}
}
return flag;
}
</script>
<form action="" method="post" name="form">
<input id="checkedExcel" type="checkbox" value="">
<input name="submit" type="submit" id="form" value="提交" onClick="validate()">
</form>
mingxuan3000 2008-01-26
  • 打赏
  • 举报
回复
form 表单提交 是根据name取值的 ,id 没用



下雪了 ,要出门了,只是个提示,也许你是对的
  • 打赏
  • 举报
回复
后台取不到?哎!我无语了!
加载更多回复(33)

87,902

社区成员

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

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