http://doc.chinaunix.net/web/200909/212841.shtml
代码分析:
- $("#<%= ibSubmit.ClientID%>").click(function() {
- var flag = true;
- //alert($("table[id^=ctl]").length);
- //创建一个checked的arr数组,用于存储每个radiobutton的checked情况
- var arr = new Array;
- $("table[id^=ctl] input[type=radio]").each(function(i) {
- arr.push(this.checked);
- });
- //然后再创建一个arrTrue数组,用于过滤false的arr数组
- var arrTrue = new Array;
- $.each(arr, function(i) {
- if (arr[i] == true) {
- arrTrue.push(arr[i]);
- }
- });
- //当然也可以用grep函数,来简化过滤arr数组操作
- //arr = $.grep(arr, function(n, i) {
- //return n == true;
- //});
- var groupLen = Math.floor($("table[id^=ctl]").length + 1 / 3);
- //最后,简单一点吧,只有判断arrTrue的长度是否为11,就可以。
- //因为是一共33个radiobutton,每3个为一组,规则又是一组中3选1, //所以全部选择肯定有11个radiobutton被选中。
- if (arrTrue.length != groupLen) {
- flag = false;
- }
- return false;
- });
完整代码:
- $(function() {
- $("#<%= ibSubmit.ClientID%>").click(function() {
- var flag = true;
- var arr = new Array;
- $("table[id^=ctl] input[type=radio]").each(function(i) {
- arr.push(this.checked);
- });
- arr = $.grep(arr, function(n) {
- return n == true;
- });
- var groupLen = Math.floor($("table[id^=ctl]").length + 1 / 3);
- if (arr.length != groupLen) {
- flag = false;
- }
- return false;
- });
- });
最后附上生成Table代码:(两种生成方法,JQuery版本,C#版本) – (可看可不看)
jQuery版本
- var array = ["XXXX",""XXXX","XXX"];
- $.each(array, function(i) {
- table.append("<tr><td>"+
- "<input id='cbl_" + i + "'" + " type='checkbox' title='" + array[0] + "' />" +
- "</td></tr>");
- });