遇到的问题:在使用该标签时,设置了默认选中项,但提交数据返回后,单选框不能显示之前选中的项,仍然为默认选项
通过测试得出以下结论:
以<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的设置无关
加个条件判断一下user==null
<s:if test="user==null">
<s:radio name="user.sex" list="%{#{'1':'男','0':'女'}}" value="1"></s:radio>
</s:if>
<s:else>
<s:radio name="user.sex" list="%{#{'1':'男','0':'女'}}" ></s:radio>
</s:else> :o :o
通过测试得出以下结论:
以<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的设置无关
加个条件判断一下user==null
<s:if test="user==null">
<s:radio name="user.sex" list="%{#{'1':'男','0':'女'}}" value="1"></s:radio>
</s:if>
<s:else>
<s:radio name="user.sex" list="%{#{'1':'男','0':'女'}}" ></s:radio>
</s:else> :o :o
本文详细阐述了在使用s:radio标签时如何设置默认选中项,并确保提交数据后该选中状态得以保留。通过对比JS代码实现与value属性设置的方法,文章强调了使用JS代码来实现默认选中效果的重要性。
159

被折叠的 条评论
为什么被折叠?



