判断动态复选框是否被选中? javacheckboxjavascript 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function isselected() { var ids = document.getElementsByName("chkSon"), selected=false; for (i = 0; i < ids.length; i++) { if (ids[i].checked) { alert(ids[i].checked + " i:" + ids[i].value); selected = true } } if(!selected){ alert("请选择内容,再操作!") }} 也许循环变量是局部的,而不是全局for (var i = 0; function isselected() { var ids = document.getElementsByName("chkSon"); for (i = 0; i < ids.length; i++) { if (ids[i].checked) { alert(ids[i].checked + " i:" + ids[i].value); return true; } } alert("请选择内容,再操作!"); return false; }放错位置了吧?? 感谢回答,不过这和我写的没什么区别呀 只是多了个变量,然后就是把我的返回值给这个变量而已。运行结果还是一样。你的for循环里执行第一次判断后就返回结果,所以实际上for循环只执行了一次。 <table><tr> <td><input type="checkbox" name="chkSon" value="<%=letter.getId()%>"/></td> <td><%=letter.getLetterTitle()%></td> <td><%=letter.getMailTypeName()%></td> <td><%=letter.getSender()%></td> <td><%=letter.getDealName()%></td></tr><tr> <td><input type="checkbox" name="chkSon" value="<%=letter.getId()%>"/></td> <td><%=letter.getLetterTitle()%></td> <td><%=letter.getMailTypeName()%></td> <td><%=letter.getSender()%></td> <td><%=letter.getDealName()%></td></tr><tr> <td><input type="checkbox" name="chkSon" value="<%=letter.getId()%>"/></td> <td><%=letter.getLetterTitle()%></td> <td><%=letter.getMailTypeName()%></td> <td><%=letter.getSender()%></td> <td><%=letter.getDealName()%></td></tr></table><input type="button" onclick="isselected()" value="删除" /><script> function isselected() { var ids = document.getElementsByName("chkSon"); for (i = 0; i < ids.length; i++) { if (ids[i].checked) { alert(ids[i].checked + " i:" + ids[i].value); return true; } } alert("请选择内容,再操作!"); return false; }</script>没有问题啊。。勾选就不会执行 alert("请选择内容,再操作!"); 也许你要实现如下的 效果,貌似你的逻辑有点问题<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>无标题文档</title><script>window.onload=function(){ var oBtn=document.getElementById('detech'); oBtn.onclick=function() { if(isselected()) { alert('有选择项'); } else { alert('请选择至少一项!'); } }}function isselected() { var ids = document.getElementsByName("chkSon"); for (var i = 0; i < ids.length; i++) { if (ids[i].checked) { return true; } } return false; } </script></head><body><input type="checkbox" name="chkSon" value="1"/><input type="checkbox" name="chkSon" value="2"/><input type="checkbox" name="chkSon" value="3"/><input type="checkbox" name="chkSon" value="4"/><p> <input type="button" value="检测" id="detech"/></p></body></html> 我那个是遍历list 复选框是循环出来的,你这是直接写在页面上,逻辑有一点点的不同。 嗯,我那个重点是遍历list,复选框是循环出来. 你试试循环一个list! 我那个是遍历list 复选框是循环出来的,你这是直接写在页面上,逻辑有一点点的不同。一样的,最后生成的就是类似的html代码 考虑的啊 你的for循环里只要有return,遇到选中多个的情况肯定不行 考虑的啊 你的for循环里只要有return,遇到选中多个的情况肯定不行o哦,那你有什么好方法没!还请不吝赐教! function isselected() { var ids = document.getElementsByName("chkSon"); for (i = 0; i < ids.length; i++) { if (ids[i].checked) { alert(ids[i].checked + " i:" + ids[i].value); return true; } } alert("请选择内容,再操作!"); return false;} 考虑的啊 你的for循环里只要有return,遇到选中多个的情况肯定不行o哦,那你有什么好方法没!还请不吝赐教!看5L 感谢回答,不过这和我写的没什么区别呀 只是多了个变量,然后就是把我的返回值给这个变量而已。运行结果还是一样。你的for循环里执行第一次判断后就返回结果,所以实际上for循环只执行了一次。 嗯,谢谢,刚刚试了你这个可以。 非常感谢各位的回答! 考虑的啊 你的for循环里只要有return,遇到选中多个的情况肯定不行o哦,那你有什么好方法没!还请不吝赐教!看5L 嗯,你说的对,谢谢。 不知道楼主到底要实现什么啊 你跑出来的效果跟你代码的逻辑是一样的啊 document.getElementsByName("chkSon");获取到得是你所有的checkbox,你点第一个的时候是因为return true,所以才只弹了一次alert,你直接选择第二个的时候,是因为你第一个的未选中所以才会报下面的,然后你继续return false,所以只弹了一个下面的alert,说说你要实现什么效果吧 我给你写 这个用foreach 更简洁,效率更高。 Css可否改变滚动条的样式? 怎么在JS文件的函数里再调用另一个JS文件中的函数? D-tree简单应用出错 js参数为函数的问题!(另开一帖子,csdn sb不让我提交了.郁闷...) 为什么new RegExp就不行了,大家谁会了! 如何给事件追加方法? 如何创建动态展开树? 怎样让input框中只能输入数字呢? 如何兼容不同浏览器,实现截取一定长度的文本内容超出部分省略显示 js中数组和对象有啥区别? 类BBS评论的回复功能怎么实现 extjs4.0.7 chart legend添加说明
var ids = document.getElementsByName("chkSon"), selected=false;
for (i = 0; i < ids.length; i++) {
if (ids[i].checked) {
alert(ids[i].checked + " i:" + ids[i].value);
selected = true
}
}
if(!selected){
alert("请选择内容,再操作!")
}
}
for (var i = 0;
function isselected() {
var ids = document.getElementsByName("chkSon");
for (i = 0; i < ids.length; i++) {
if (ids[i].checked) {
alert(ids[i].checked + " i:" + ids[i].value);
return true;
}
}
alert("请选择内容,再操作!");
return false;
}放错位置了吧??
<tr>
<td><input type="checkbox" name="chkSon" value="<%=letter.getId()%>"/></td>
<td><%=letter.getLetterTitle()%></td>
<td><%=letter.getMailTypeName()%></td>
<td><%=letter.getSender()%></td>
<td><%=letter.getDealName()%></td>
</tr>
<tr>
<td><input type="checkbox" name="chkSon" value="<%=letter.getId()%>"/></td>
<td><%=letter.getLetterTitle()%></td>
<td><%=letter.getMailTypeName()%></td>
<td><%=letter.getSender()%></td>
<td><%=letter.getDealName()%></td>
</tr>
<tr>
<td><input type="checkbox" name="chkSon" value="<%=letter.getId()%>"/></td>
<td><%=letter.getLetterTitle()%></td>
<td><%=letter.getMailTypeName()%></td>
<td><%=letter.getSender()%></td>
<td><%=letter.getDealName()%></td>
</tr>
</table>
<input type="button" onclick="isselected()" value="删除" />
<script>
function isselected() {
var ids = document.getElementsByName("chkSon");
for (i = 0; i < ids.length; i++) {
if (ids[i].checked) {
alert(ids[i].checked + " i:" + ids[i].value);
return true;
}
}
alert("请选择内容,再操作!");
return false;
}
</script>没有问题啊。。勾选就不会执行 alert("请选择内容,再操作!");
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script>
window.onload=function(){
var oBtn=document.getElementById('detech');
oBtn.onclick=function()
{
if(isselected())
{
alert('有选择项');
}
else
{
alert('请选择至少一项!');
}
}
}
function isselected() {
var ids = document.getElementsByName("chkSon");
for (var i = 0; i < ids.length; i++) {
if (ids[i].checked) {
return true;
}
}
return false;
}
</script>
</head><body><input type="checkbox" name="chkSon" value="1"/>
<input type="checkbox" name="chkSon" value="2"/>
<input type="checkbox" name="chkSon" value="3"/>
<input type="checkbox" name="chkSon" value="4"/>
<p>
<input type="button" value="检测" id="detech"/>
</p>
</body>
</html>
我那个是遍历list 复选框是循环出来的,你这是直接写在页面上,逻辑有一点点的不同。
我那个是遍历list 复选框是循环出来的,你这是直接写在页面上,逻辑有一点点的不同。一样的,最后生成的就是类似的html代码
考虑的啊
你的for循环里只要有return,遇到选中多个的情况肯定不行
考虑的啊
你的for循环里只要有return,遇到选中多个的情况肯定不行o哦,那你有什么好方法没!还请不吝赐教!
var ids = document.getElementsByName("chkSon");
for (i = 0; i < ids.length; i++) {
if (ids[i].checked) {
alert(ids[i].checked + " i:" + ids[i].value);
return true;
}
}
alert("请选择内容,再操作!");
return false;
}
考虑的啊
你的for循环里只要有return,遇到选中多个的情况肯定不行o哦,那你有什么好方法没!还请不吝赐教!
看5L
嗯,谢谢,刚刚试了你这个可以。 非常感谢各位的回答!
考虑的啊
你的for循环里只要有return,遇到选中多个的情况肯定不行o哦,那你有什么好方法没!还请不吝赐教!
看5L
嗯,你说的对,谢谢。
不知道楼主到底要实现什么啊 你跑出来的效果跟你代码的逻辑是一样的啊 document.getElementsByName("chkSon");获取到得是你所有的checkbox,你点第一个的时候是因为return true,所以才只弹了一次alert,你直接选择第二个的时候,是因为你第一个的未选中所以才会报下面的,然后你继续return false,所以只弹了一个下面的alert,说说你要实现什么效果吧 我给你写