欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Struts2的s:radio标签使用及用jquery添加change事件

程序员文章站 2022-06-21 17:02:56
struts2中s:radio标签的使用总结 遇到的问题:在使用该标签时,设置了默认选中项,但提交数据返回后,单选框不能显示之前选中的项,仍然为默认选项 通过测试得出以下结论: 以

struts2中s:radio标签的使用总结

遇到的问题:在使用该标签时,设置了默认选中项,但提交数据返回后,单选框不能显示之前选中的项,仍然为默认选项
通过测试得出以下结论:

以<s:radio name="user.sex" list="%{#{'1':'男','0':'女'}}" theme="simple"></s:radio>为例
在使用s:radio标签的时候,如果要使该标签默认选中一项,可以通过两种方法
1、通过js代码实现

. 代码如下:


document.getelementsbyname('user.sex')[0].checked=true;//默认选中男


2、通过添加value属性

. 代码如下:


<s:radio name="user.sex" list="%{#{'1':'男','0':'女'}}" value="1" theme="simple"></s:radio>


在通过value属性设置单选框的默认选项时,无论何时页面刷新后单选框的状态都是选中该默认项
因此,如果要让数据提交后台后,该单选框仍然是之前选中的项,不能通过value属性设置它的默认项,应该通过第一种方法设置
此外,后台能够正确获取该单选框的值,而与value的设置无关

用jquery给struts2的<s:radio />标签添加change事件

用到struts2的<s:radio/>标签时想给它添加一个change事件,由于此标签为页面自动生成一个radio组,不能像平常那样控制。网上说了一大堆,也没找到一个满意的。如果像以前那样给此<s:radio />设定一个id,那样生成的radio组中会自动添加一个数字,如:

. 代码如下:


<input type="radio" name="file" id="upfile_file0" value="0"><label for="upfile_file0">否</label>
<input type="radio" name="file" id="upfile_file1" checked="checked" value="1" class="filetype"><label for="upfile_file1">是</label>


这时可以借助jquery来实现,很简单,给此<s:radio/>添加一个属性cssclass="filetype",就会给每个radio添加一个css类,上面可以看得出来,那么接下来代码如下所示:

. 代码如下:


$(function(){
$(".filetype").change(function(){
var val = $("input[name='file']:checked").val();//获得选中的radio的值
if(val=='1'){
alert(“是”);
}else{
alert(“否”);
}
});
});