关于Select option默认选中及查询后选项值保留的问题
2014-10-18 07:54
2361 查看
在jsp页面中经常会有关于下拉框选项的查询,一般我会用<c:forEach></c:forEach>标签去循环从后台传来的对象或者集合数组。然后在下拉框中加载出数据库中的数据。一般的格式是这样的:
<select class="percentText" id="operatorId" name="operatorId">
<option value="">--Select All--</option>
<c:forEach items="${operators }" var="oper" varStatus="step">
<option value = "${oper.operatorId }" ${oper.operatorName }</option>
</c:forEach>
</select>
其中<select></select>标签中的第一个<option></option>是要在文本框中显示的(如果没有设置默认选项的话)
那么这就牵涉到一个小问题了,如何设置默认选项?
一般情况会是在写死的<select></select>中使用,也就是说<select></select>中的数据不是从数据库中加载出来的,而是直接写死在jsp里面的,比如:
<select class="percentText" id="operatorId" name="operatorId">
<option value="">请选择</option>
<option value="1">宝马</option>
<option value="2">奔驰</option>
<option value="3">奥迪</option>
</select>
如果是这样的话,文本框中依然是"请选择"(即第一个<option></option>),如果想让文本框中默认为“宝马”,则需要在<option
value="1">宝马</option>中加上selected = "selected"即<option value="1"
selected = "selected">宝马</option>。
还是回到我原来的问题,首先补充说明一下我第一段代码的意思,operators是我从控制器(controller、action)中传过来的对象集合,用${operators }来获取。var="oper"是要在option中来调用这个对象的属性。
其中的问题就是,当我选择其中一个值然后查询会刷新出来一个页面,但是select文本框中的值又变回--Select All--,没有保留原来的值,这就给用户不好的体验,这种情况会导致用户可能忘记根据哪个条件来查询的了。所以必须点击刷新显示列表页面是保留select的值。
用上面的selected="seleced"肯定是行不通的
那么这就要结合<select></select>的name属性以及<option></option>的value值了
在<option></option>中加上${oper.operatorId
== param['operatorId']?'selected':''}即:
<option value = "${oper.operatorId
}" ${oper.operatorId == param['operatorId']?'selected':''}>${oper.operatorName }</option>
其中oper.operatorId 是来自<option value
= "${oper.operatorId }">, param['operatorId']中的operatorId是来自<select
name="operatorId"
这样再次查询刷新页面后,文本框的值将会保留选择的条件!
<select class="percentText" id="operatorId" name="operatorId">
<option value="">--Select All--</option>
<c:forEach items="${operators }" var="oper" varStatus="step">
<option value = "${oper.operatorId }" ${oper.operatorName }</option>
</c:forEach>
</select>
其中<select></select>标签中的第一个<option></option>是要在文本框中显示的(如果没有设置默认选项的话)
那么这就牵涉到一个小问题了,如何设置默认选项?
一般情况会是在写死的<select></select>中使用,也就是说<select></select>中的数据不是从数据库中加载出来的,而是直接写死在jsp里面的,比如:
<select class="percentText" id="operatorId" name="operatorId">
<option value="">请选择</option>
<option value="1">宝马</option>
<option value="2">奔驰</option>
<option value="3">奥迪</option>
</select>
如果是这样的话,文本框中依然是"请选择"(即第一个<option></option>),如果想让文本框中默认为“宝马”,则需要在<option
value="1">宝马</option>中加上selected = "selected"即<option value="1"
selected = "selected">宝马</option>。
还是回到我原来的问题,首先补充说明一下我第一段代码的意思,operators是我从控制器(controller、action)中传过来的对象集合,用${operators }来获取。var="oper"是要在option中来调用这个对象的属性。
其中的问题就是,当我选择其中一个值然后查询会刷新出来一个页面,但是select文本框中的值又变回--Select All--,没有保留原来的值,这就给用户不好的体验,这种情况会导致用户可能忘记根据哪个条件来查询的了。所以必须点击刷新显示列表页面是保留select的值。
用上面的selected="seleced"肯定是行不通的
那么这就要结合<select></select>的name属性以及<option></option>的value值了
在<option></option>中加上${oper.operatorId
== param['operatorId']?'selected':''}即:
<option value = "${oper.operatorId
}" ${oper.operatorId == param['operatorId']?'selected':''}>${oper.operatorName }</option>
其中oper.operatorId 是来自<option value
= "${oper.operatorId }">, param['operatorId']中的operatorId是来自<select
name="operatorId"
这样再次查询刷新页面后,文本框的值将会保留选择的条件!
相关文章推荐
- 关于Select option默认选中及查询后选项值保留的问题
- select动态添加option与动态设置下拉框默认选项(selected)的问题(原创)
- thinkphp 从数据库查询出来以后默认选中select中的option
- 关于使用select标签,去掉重复选项的问题。默认首选项不被去除。
- select下拉框之默认选中问题
- 关于html中select选中的问题
- java和struts使用中的一点总结--关于写在页面上的select域的选项选中后保存状态的办法!
- Jquery multiselect 多选下拉框与ajax配合使用,动态拼接option。初始化默认选中多个,增加搜索框
- jquery easyui关于datagrid新增一行 combobox 默认选中第一项问题
- java开发中select下拉列表在查询操作中保留查询条件问题
- 关于sql视图--定义视图的查询不能包含order by子句,除非在select 语句的选择列表中还有top子句---问题解决
- html的select标签怎么让其显示一默认option选项
- 关于单选框重置后无法默认选中的问题
- jQuery设置下拉框select 默认选中第一个option
- 在Chrome(49.0.2623.87)版本下通过JS改变select的选项时,要先清空之前的option元素的selected属性的问题
- 如何解决IE8中select控件多选控件在焦点不在控件上时点击选项要点击两次才能选中的问题
- 关于js遍历list集合,获取select选中的值以及动态添加option
- js 默认选中select 选项
- 关于<c:forEach>中select和oprtion设置默认选项