js 控制radio选中的问题

<td><inputtype="RADIO"name="sex"value="男"id="male"/><labelfor="male">男</label><inputt... <td><input type="RADIO" name="sex" value="男" id="male"/><label for="male">男</label>
<input type="RADIO" name="sex" value="女" id="female"/><label for="female">女</label>
</td>
var radios = document.getElementsByName("sex");
for(var i = 0; i <radios.length; i++ ){
if(radios[i].value == ${sessionScope.user.sex}){
alert("hello");
radios[i].checked = true;
}
alert("wrold");
}
我需要根据后台传过来的性别开控制前台性别属性的选中状态,根据这样的代码控制不了。而且hello和wrold也不给我谈了,求大神帮忙解决
展开
 我来答
xiii130
2014-05-11 · 知道合伙人软件行家
xiii130
知道合伙人软件行家
采纳数:817 获赞数:2867
爱好编程,在工作中积累了比较丰富的经验。愿与大家共同进步。

向TA提问 私信TA
展开全部
哦,其实你离真相已经很近了

根据${sessionScope.user.sex}这一句,目测你用的应该是什么前台模板吧

程序运行时,应该是把${sessionScope.user.sex}这个替换成了后台数据

但是这里的判断是在js里面执行的,所以你要用引号把值括起来
if(radios[i].value == '${sessionScope.user.sex}')

才对

不括起来的话,js会认为那是个变量,而非常量

不信你可以看看js控制台,一定会报一个xx变量未定义的错误

如果还有问题,就可以考虑是否乱码了
追问
如何在js中遍历一个从后台传递过来的Set呢?
追答
要么你就用ajax,把后台数据返回回来成为js可以读取的json数组

要么你就用后台脚本,把字符串输出到js代码里,让js认为这是一个字符串,再去处理
hyjiacan
2014-05-11 · TA获得超过3912个赞
知道小有建树答主
回答量:894
采纳率:100%
帮助的人:1087万
展开全部

radios[i].value == ${sessionScope.user.sex}


改成


radios[i].value == '${sessionScope.user.sex}'


因为使用表达式读取到页面中的值,是原始的值,例:

当 sessionScope.user.sex 的值为 “男”时,那么页面的的脚本是这样:

radios[i].value == 男

,而需要的却是 

radios[i].value == '男'
更多追问追答
追问
如何在js中遍历一个后台传过来的集合呢?
追答

遍历是通过后台的代码遍历,如:

<%
List<String> list = xx.getList();
%>
<script>
var _l= [];
<%
foreach(String item in list) {
%>
_l.push('<% print(item); %>');
<%    
}
%>
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式