在HTML中从多选下拉框中提取已选中选项的文本内容到后台,被这个问题难倒了。
demo.jsp文件
-
<select id="selecttype" name"type">
-
<option value="" selected="selected">请选择</option>
-
<c:forEach items="${typeList}" var="typeList">
-
<option value="${typeList.id}">${typeList.name}</option>
-
<c:forEach>
-
</select>
如上代码,想过用设置隐藏域获取文本内容typeList.name,将隐藏域放在forEach循环内。
<input id="selecttypename" type="hidden" name="typename" value="${typeList.name}" />
后台接收typename为空值,也许遍历循环的时候把隐藏域也循环出多份了,而同一个Form表单中不能有多个相同name属性的标签。
隐藏域放哪里好呢?思考无果后开始查资料,最后找到解决方案。
JavaScript中有一个change事件
JavaScript代码
-
$("#selecttype").change(function(){
-
$("selecttypename").val($("#selecttype").find("option:selected").text());
-
});
当触发select框选项改变的条件,将框内选中的文本内容传递给隐藏域的value值,这样隐藏域也能随自己心意放在合适的位置了。