天天看点

关于java 获取 html select标签 下拉框 option 文本内容 隐藏域

在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值,这样隐藏域也能随自己心意放在合适的位置了。

继续阅读