function fun2() {
var ck = document.getElementById("ck");
var table = document.getElementById("GridView1");
var cks = table.getElementsByTagName("input");
var r = false;
for (var i = 0; i < cks.length; i++) {
if (cks[i].type == "checkbox" && cks[i].id !=" ck") {
if (cks[i].checked) {
r = true;
break;
}
}
}
if (!r) {
alert("请选择");
}
从结果来看里面的!r 应该是没有选择的时候就发生、、、但是我从里面看却有点不理解啊、、我理解的貌似就是!r就是对的啊、、求高手指点迷津啊、、
关键在这里:
for (var i = 0; i < cks.length; i++) {
if (cks[i].type == "checkbox" && cks[i].id !=" ck") {
if (cks[i].checked) {
r = true;
break;
}
}
}
如果有一个选中,r就为true,然后就跳出循环了啊
貌似前面定义的r值没用啊、、var r = false;我后面试了下好像r=false或true不影响啊、、而且后面的!r就等同于r=false这我就搞不懂了、、、为什么无论前面后面是R=true还是false后面的!r都成立、、、、
还有 function fun() {
var ck = document.getElementById("ck");
var table = document.getElementById("GridView1");
var cks = table.getElementsByTagName("input");
for (var i = 0; i < cks.length; i++)
{
if (cks[i].type == "checkbox") {
cks[i].checked = ck.checked;
}
}
}
这个cks[i].checked = ck.checked是不是理解成将ck.checked付给cks[i].checked啊、、、
@你的幸福、我在彼岸:
你还是没看明白我回复中帖出的代码,建议再耐心看一下
至于cks[i].checked = ck.checked,这里ck.checked是一个bool值
@artwl:
好吧、、你说的、、 如果有一个选中,r就为true,然后就跳出循环了啊、、也就是说如果一个也没有选中那么就是r为false、、那么后面的!r到底该怎么去理解么、、
至于cks[i].checked = ck.checked,这里ck.checked是一个bool值 、、、为什么是bool值有点不理解、、、
看看是不是有id不是ck的复选框被选中,有的话就弹出警告。
关键是!r那里有点不明白
@你的幸福、我在彼岸: 这又什么不好理解的?不就一个bool变量么?
!就是非的意思啊
当r=false时,!r=true
当r=true时!r=false
明白了吧?
比如这里的
if(!IsPostBack)
{
//当不是回发时触发,也就是在页面初次加载时触发
}
var r在for外面是false,当进入for循环,并且符合if条件的要求,就证明具有符合套件的内容,然后让r=true进行标识
在外面判断r如果不是true就给出提示框。
额 就是一个遍历复选框 如果一个被选中 就修改状态为true 为下一步执行起判断作用