请教各位达人一个问题,我页面打开的时候,有一个select,我想让页面一进来的时候,它就能选中一个从别的页面穿过来的value值(projectId),代码如下:
var projectSel = document.getElementById("projectId");
if(0!=projectId){
//alert(projectId);
projectSel.value =projectId;
}
可是我如果不使用alert(projectId)这句话的时候它显示的是list德第一行,用了alert(projectId),点了确定后才能显示我想让它显示的东西,这里alert起到了什么作用么?
另外,当取到的值包含中文的时候,
var aaa = 会出错,也不能用,
但是如果是值是英文或数字的时候就好用,这是怎么一回事呢,有什么解决办法么?!
[b]问题补充:[/b]
按http://www.sosuo8.com/article/show.asp?id=49上写的修改之后,仍然在sel.option[i].selected=true那里出现错误,页面上也会有error on page的提示,原因不明~
lovewhzlq的回答,说var aaa = 这样用不行,为什么呢?另外,我的程序里面不是要取选择的option的value值,而是知道value值想选定对应选项~
zgy_zhengGY的回答,这里不是模型驱动的问题,select中的内容是用javascrip动态添加的,开始进入页面的时候为空,所以使用模型驱动知道value值也取不到值的~另外,我的页面编码设置的是utf-8~
[b]问题补充:[/b]
最终成功代码:(注释部分为我原来尝试的代码,但是不行,原因不明)
var projectId = ;
for(var i=0; i<projectList.length; i++) {
if(projectList[i].id==projectId){
$("" + projectList[i].name + "").appendTo(projectSel);
}else
$("" + projectList[i].name + "").appendTo(projectSel);
}
}
//for(var i=0;i<projectSel.options.length;i++){
// if(projectSel.options[i].value==projectId){
/// projectSel.options[i].selected = true;
// break;
// }
//}
不是这样操作的,对于struts2标签偶不熟,偶只说js中的
操作步骤是取得struts,再选中option,再定义option为select
http://www.sosuo8.com/article/show.asp?id=49
第二个问题
http://hi.baidu.com/davidlovewar3/blog/item/46b440951b8bbe17d21b7084.html
var aaa =
不能这么用js的,你对js的理解有些问题
还有就是取select的选项不能这样的projectSel.value =projectId;
1
2 1
3 2
4 3
5
6
7<br> 8 function change(obj)<br> 9 {<br> 10 var selValue=(obj.options[obj.selectedIndex]).value;//获得选中值<br> 11 alert(selValue);<br> 12 }<br> 13
正如楼上所说,struts2对select有过封装,通过标签就可以实现select的默认选中,
但是如果你是要用js进行选中的话,那方法就不多了,不管用任何方法,最终的手段都是将select中的option的值修改为select,给你的代码是对的,我也跑过了,没问题。