下拉框从后台给出默认选中项

一个很奇怪的现象,下拉框的selected属性如果为空,那么默认选中项将失去该有的功能,举例:

<select id="machRoom">
  <option id= "1" selected="">sdf11</option>
  <option id= "2" selected="">sdf22</option>
  <option id= "4" selected="selected">sdf000</option>
  <option id= "3" selected="">sdf33</option>
  </select>

比如上面,将没有默认项,原因selected属性只有为”selected“时,默认选中,当为“”时,则属性失效。这就意味着我从后台的代码错误正是如此:

机房:<select id="machRoom" οnchange="showDev();">
                     <c:forEach items="${roomList}" var="list" >
<option value="${list.key}" selected="${list.key==flag1}?'selected':''">${list.value} </option>
</c:forEach>
</select>

原因:当没有选中的项循环时,给selected属性赋值为“”,故而错误。

当了解到<option id= "4" selected>sdf000</option>这种方式也能默认选项时,我笑了,迅解决如下:

机房:<select id="machRoom" >
<c:forEach items="${roomList}" var="list" >
<option value="${list.key}" ${list.key==flag1?'selected':''}>${list.value}</option>
</c:forEach>
</select>

flag1为后台默认要选中的选项。这是就避免了selected=“”时的情况。


附:个人qq空间:http://user.qzone.qq.com/449125551/profile/sync#!app=2&via=QZ.HashRefresh&pos=1384014434


版权声明:本文为fly0744原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。