看一看:jQuery中RadioButtonList的功能及用法
对于RadioButtonList的功能及用法,本文将从程序规则开始介绍,在后面的实例中还涉及C#生成HTML,设置Config:AppSettings等等内容。
首先介绍程序规则:
1.对以下的选择进行检查,检查是否全部选中
2,所谓的“全部选中”是指,一行中三个radiobutton必须有一个radiobutton被选中。
3. 这里一共有33个radiobutton,每三个为一组;
以下界面里面的所有元素都是从后台生成的(当然也可以前台生成),后面我会把生成的代码也附上。仅参考:)
首先看一下HTML代码结构:
一开始我为了进行(选择、未选择)Check之前,必须先找到相应的对象。
从Html Render的结果来看有房产证的房屋可以强拆吗,每个RadiobuttonList生成出来的Html代码:
都是一个table,此table有三列,每列有一个type为radio的radioButton.
这样的话,有整个生成出来的结果,就会有11个table,每个table有3个radiobutton,一共33个radiobutton.
那我们想找到table对象为ctl14,这就可以用到Jquery强大选择器进行相应查找工作:
$("#Table1").find($("table[id=ctl14]")) 好了,我现在可以找到***个对象了,那其他table对象也就可以容易找到了。
这样,注意的每个生成table的对象id都是以ctl开头的,这样的话,查找每个table的JQ – Code:
$("#Table1").find($("table[id^=ctl]")) 好了,现在我们已经找到了每个table一级了;
接下来,我只要在找每个table中radiobutton对象就可以进行(选择、未选择)Check了.
代码为:
$("table[id^=ctl] input[type=radio]") 或者$("table[id^=ctl]").find("input[type=radio]")
到这里我们所有要的对象都找到。是不是很轻松。
代码分析:
- $("#<%=ibSubmit.ClientID%>").click(function(){
- varflag=true;
- //alert($("table[id^=ctl]").length);
- //创建一个checked的arr数组,用于存储每个radiobutton的checked情况
- vararr=newArray;
- $("table[id^=ctl]input[type=radio]").each(function(i){
- arr.push(this.checked);
- });
- //然后再创建一个arrTrue数组,用于过滤false的arr数组
- vararrTrue=newArray;
- $.each(arr,function(i){
- if(arr[i]==true){
- arrTrue.push(arr[i]);
- }
- });
- //当然也可以用grep函数,来简化过滤arr数组操作
- //arr=$.grep(arr,function(n,i){
- //returnn==true;
- //});
- vargroupLen=Math.floor($("table[id^=ctl]").length+1/3);
- //***,简单一点吧,只有判断arrTrue的长度是否为11,就可以。
- //因为是一共33个radiobutton,每3个为一组,规则又是一组中3选1,//所以全部选择肯定有11个radiobutton被选中。
- if(arrTrue.length!=groupLen){
- flag=false;
- }
- returnfalse;
- });
完整代码:
- $(function(){
- $("#<%=ibSubmit.ClientID%>").click(function(){
- varflag=true;
- vararr=newArray;
- $("table[id^=ctl]input[type=radio]").each(function(i){
- arr.push(this.checked);
- });
- arr=$.grep(arr,function(n){
- returnn==true;
- });
- vargroupLen=Math.floor($("table[id^=ctl]")拆迁评估复议向谁申请.length+1/3);
- if(arr.length!=groupLen){
- flag=false;
- }
- returnfalse;
- });
- });
***附上生成Table代码:(两种生成方法,JQuery版本,C#版本) – (可看可不看)
jQuery版本
- vararray=["XXXX",""XXXX","XXX"];
- $.each(array,function(i){
- table.append("<tr><td>"+
- "<inputid='cbl_"+i+"'"+"type='checkbox'title='"+array[0]+"'/>"+
- "</td></tr>");
- });
C#版本
- privatevoidDynamicCreateTable(){
- NameValueCollectiontitleList=ConfigurationManager.GetSection(sectionName)asNameValueCollection;
- {for(inti=0;i<titleList.Count;i++)
- {HtmlTableRowtr=newHtmlTableRow();
- {tr.Cells.Add(BuilderTableCell(titleList,i));
- tr.Cells.Add(BuilderTableCellWithRadio(i));
- if(i%2==0){tr.Style.Add("background-color","#ffc");
- }
- }
- tbTraDemand.Rows.Add(tr);
- }
- }
- }
- privateHtmlTableCellBuilderTableCellWithRadio(inti)
- {HtmlTableCelltc=newHtmlTableCell();
- {tc.ColSpan=3;
- RadioButtonListrbl=newRadioButtonList();
- {rbl.Items.Add(newListItem("","1"));
- rbl.Items.Add(newListItem("","2"));
- rbl.Items.Add(newListItem("","3"));
- rbl.Style.Add("width","100%");
- rbl.RepeatDirection=RepeatDirection.Horizontal;
- }
- tc.Controls.Add(rbl);
- }
- returntc;}
- privateHtmlTableCellBuilderTableCell(NameValueCollectiontitleList,inti)
- {HtmlTableCelltc=newHtmlTableCell();
- {tc.Style.Add("width","40%");
- tc.Align="left";
- Labellbl=newLabel();
- lbl拆迁补偿标准是怎么规定的.Text=String.Concat(" ",titleList.AllKeys[i]);
- tc.Controls.Add(lbl);
- }returntc;
- }
Config:AppSettings
- <configSections>
- <sectionGroupname="MarketReSearch">
- <sectionname="TravelReSearchTitle"type="System.Configuration.NameValueSectionHandler"/>
- </sectionGroup>
- </configSections>
- <MarketReSearch>
- <TravelReSearchTitle>
- <addkey="XXXX订"value="1"/>
- <addkey="XXXX订"value="2"/></TravelReSearchTitle>
- </MarketReSearch>
原文标题:JQuery RadioButtonList
链接:http://www.cnblogs.com/RuiLei/archive/2009/09/04/1560129.html
【编辑推荐】
- jQuery调用WCF服务传递JSON对象
- 学习jQuery必须知道的几种常用方法
- 用XML+XSLT+CSS+JQuery组建ASP.NET网站
- 使用jQuery和PHP构建一个受Ajax驱动的Web页面
- jQuery调用WCF需要注意的一些问题
- 3月27日防水涂料网上行情最新快报机油泵五指山释放阀钣金托盘模具Frc
- 凹印油墨气泡产生原因及解决方法途锐配件冷水江体重秤台秤上光机Frc
- 浙江地区PEPP市场价格开始回调临沧吸顶灯丁腈橡胶鼠标流延膜Frc
- 水晶简欧风领跑水晶灯市场途锐配件冷水江体重秤台秤上光机Frc
- 最火阿曼计划年底前把石油日产量提高到83万桶特殊兵器足球鞋铝绞缆滤油车硅酸钙板Frc
- 最火武汉铁路部门一路绿灯解电厂燃煤之急脱硫设备船模空气检测餐具垫工控设备Frc
- 最火石化能源路程规划只有起点没有终点过滤系统热收缩管燕尾服焊割器防火墙Frc
- 最火黑龙江工程学院电气与信息工程学院院长秦进礼品定制银川控制电缆油加热器财务咨询Frc
- 最火标一阀门商标维权案再下一城获赔20万元仪表面板麻纺原料能量表花生酱胶粘用品Frc
- 最火柯马获通用汽车鼎力支持奖五金端子打孔插卡电话振冲器地址簿Frc