HHHHHHHH

关于使用三元运算符来判断下拉框选项是否选中的总结

我们经常会从后台传递一组数据,这一组数据需要放到一个select下拉框中,并且要判断是否要选中其中某一个值

错误的做法是

<select >

  <option selected="${value.week==1?'selected' :''}>周一</option>"

  <option selected="${value.week==2?'selected' :''}>周二</option>"

  <option selected="${value.week==3?'selected' :''}>周三</option>"

  <option selected="${value.week==4?'selected' :''}>周四</option>"

  <option selected="${value.week==5?'selected' :''}>周五</option>"

</select>

通常我们以为经过EL的三元运算符的运算,得到的结果是这样的

<select >

  <option selected=' '>周一</option>"

  <option selected=' '>周二</option>"

  <option selected='selected'>周三</option>"

  <option selected=' '>周四</option>"

  <option selected=' '>周五</option>"

</select>

而实际编译后也确实生成的是这样,那为什么周三还是不会选中呢???哈哈

 

经过反复测验后得出一个结论就是

 

 

如果在一个下拉框中,有某个选项将要被选中,那么其他选项的select属性就不能有值

当我们在MyEclipse中写上这样一段

系统会有立马警告

而部署后2选项也同样不会被选中,也证明了我们的结论

 

那么要怎样用三元运算符来设置下拉框的选项是否选中呢?

如图

 

 

 

也就是

<select name="week" style="display: none" class="updateInfo">
                    <option>-请选择-</option>
                    <option ${courseMap.week == 0 ? "selected= 'selected'" : " "} value="0"> &nbsp;周 日&nbsp;</option>
                    <option ${courseMap.week == 1 ? "selected= 'selected'" : " "} value="1">&nbsp;星期一&nbsp;</option>
                    <option ${courseMap.week == 2 ? "selected= 'selected'" : " "} value="2">&nbsp;星期二&nbsp;</option>
                    <option ${courseMap.week == 3 ? "selected= 'selected'" : " "} value="3">&nbsp;星期三&nbsp;</option>
                    <option ${courseMap.week == 4 ? "selected= 'selected'" : " "} value="4">&nbsp;星期四&nbsp;</option>
                    <option ${courseMap.week == 5 ? "selected= 'selected'" : " "} value="5">&nbsp;星期五&nbsp;</option>
                    <option ${courseMap.week == 6 ? "selected= 'selected'" : " "} value="6">&nbsp;星期六&nbsp;</option>
</select>

 

如果条件成立才会有selected='selected'不然只是一个空格,不知道您看懂了么???

 

 

琢磨了半天才想明白,作为一个笔记吧!

 

posted @ 2015-02-03 23:53  FranklinD  阅读(1968)  评论(0编辑  收藏  举报