一个很奇怪的现象,下拉框的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