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也不给我谈了,求大神帮忙解决 展开
<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也不给我谈了,求大神帮忙解决 展开
2个回答
2014-05-11 · 知道合伙人软件行家
关注
展开全部
哦,其实你离真相已经很近了
根据${sessionScope.user.sex}这一句,目测你用的应该是什么前台模板吧
程序运行时,应该是把${sessionScope.user.sex}这个替换成了后台数据
但是这里的判断是在js里面执行的,所以你要用引号把值括起来
if(radios[i].value == '${sessionScope.user.sex}')
才对
不括起来的话,js会认为那是个变量,而非常量
不信你可以看看js控制台,一定会报一个xx变量未定义的错误
如果还有问题,就可以考虑是否乱码了
根据${sessionScope.user.sex}这一句,目测你用的应该是什么前台模板吧
程序运行时,应该是把${sessionScope.user.sex}这个替换成了后台数据
但是这里的判断是在js里面执行的,所以你要用引号把值括起来
if(radios[i].value == '${sessionScope.user.sex}')
才对
不括起来的话,js会认为那是个变量,而非常量
不信你可以看看js控制台,一定会报一个xx变量未定义的错误
如果还有问题,就可以考虑是否乱码了
追问
如何在js中遍历一个从后台传递过来的Set呢?
追答
要么你就用ajax,把后台数据返回回来成为js可以读取的json数组
要么你就用后台脚本,把字符串输出到js代码里,让js认为这是一个字符串,再去处理
展开全部
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>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询