注册 登录
编程论坛 JavaScript论坛

动态设置select控件的默认值的JS代码,请指正

无缘今生 发布于 2010-11-15 10:52, 10377 次点击
页面中有一个select控件,通过选定不同的值显示不同的内容,显示页面是同一个。

目前的情况是:在选定一个项目后,页面重新显示,但select中显示的仍是第一项(默认值),不是刚刚选中的那个项。

现在要实现的功能是,在页面重新显示后,select控件中显示刚刚选择的项目。
页面select控件代码如下:
程序代码:
<select name="jumpMenu" id="jumpMenu" onChange="jumpMenu('parent',this,0)">
   <option id="1" value="跳转URL">111</option>  //  111 是显示给用户的信息
   <option id="2" value="跳转URL">111</option>
   <option id="3" value="跳转URL">111</option>
   <option id="4" value="跳转URL">111</option>
   <option id="5" value="跳转URL">111</option>
</select>
为此,我写了下面的JS代码:
程序代码:
function display(optionID)
{
   var all_options = document.getElementById("jumpMenu").options;
   for (i=0; i<all_options.length; i++)
   {
      if (all_options[i].id == optionID)  // 根据option标签的ID来进行判断  测试的代码这里是两个等号
      {
         all_options[i].selected = true;
      }
   }
}
调用方式如下:
<script type="text/javascript">
   var the_id = '${option_id}';      // option_id 是后台传回的option标签的ID值。
   window.onload = display(the_id);
</script>

但是,在测试时查看select的option,没有任何一个option被设置了selected属性。
请问上面的JS代码有什么问题,请指教!



[ 本帖最后由 无缘今生 于 2010-11-15 11:13 编辑 ]
9 回复
#2
aspic2010-11-15 11:08
all_options[i].id == optionID
#3
无缘今生2010-11-15 11:12
以下是引用aspic在2010-11-15 11:08:29的发言:

all_options.id == optionID
不好意思,我在抄代码的时候写错了,
我原来是这样写的。
all_options.id == optionID

经测试,是下面这句没执行,
var all_options = document.getElementById("jumpMenu").options;

请问这条语句有什么问题,我看不出来。


[ 本帖最后由 无缘今生 于 2010-11-15 11:21 编辑 ]
#4
aspic2010-11-15 11:33
程序代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. xmlns="http://www. http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>

<body>
<select name="jumpMenu" id="jumpMenu" onChange="jumpMenu('parent',this,0)">
   <option id="1" value="跳转URL">111</option>  //  111 是显示给用户的信息
   <option id="2" value="跳转URL">222</option>
   <option id="3" value="跳转URL">333</option>
   <option id="4" value="跳转URL">444</option>
   <option id="5" value="跳转URL">555</option>
</select>
<script type="text/javascript">
function display(optionID){
   var all_options = document.getElementById("jumpMenu").options;
   for (i=0; i<all_options.length; i++){
      if (all_options[i].id == optionID)  // 根据option标签的ID来进行判断  测试的代码这里是两个等号
      {
         all_options[i].selected = true;
      }
   }
};
display("4");
</script>
</body>
</html>
#5
aspic2010-11-15 11:35
不过id不应该用数字开头的吧。。。。
#6
hugeannex2010-11-15 12:45
看表演罗。。。
<select name="jumpMenu" id="jumpMenu" onChange="jumpMenu('parent',this,0)">
   <option id="sel_1" value="跳转URL">111</option>  //  111 是显示给用户的信息
   <option id="sel_2" value="跳转URL">111</option>
   <option id="sel_3" value="跳转URL">111</option>
   <option id="sel_4" value="跳转URL">111</option>
   <option id="sel_5" value="跳转URL">111</option>
</select>

------------------------------------
function display(optionID)
{
   var all_options = document.getElementById("jumpMenu").options;
   for (i=0; i<all_options.length; i++)
   {
      if (all_options[i].id.split('_')[1] == optionID)  // 根据option标签的ID来进行判断  测试的代码这里是两个等号
      {
         all_options[i].selected = true;
      }
   }
}

--------------------
window.onload=function(){display(the_id)}

#7
gupiao1752010-11-15 13:28
,最近不少老会员回归啊!

楼主是2007年注册的,楼上的是2005年的,敢问下,你们这几年是否一直都从事着WEB领域的工作,或者纯粹只是个人爱好呢?呵呵!
#8
无缘今生2010-11-15 13:54
谢谢6楼的hugeannex,问题成功解决。
#9
aspic2010-11-15 15:57
无语
#10
hugeannex2010-11-16 15:14
以下是引用gupiao175在2010-11-15 13:28:47的发言:

,最近不少老会员回归啊!

楼主是2007年注册的,楼上的是2005年的,敢问下,你们这几年是否一直都从事着WEB领域的工作,或者纯粹只是个人爱好呢?呵呵!
我一开始不从事这领域,纯粹个人爱好,走着走着,前两年走到了该行业。
1