用<c:foreach>填充的selected怎么动态获取选中值呢?----------------------------------------------

tyhdxhl 2015-08-20 10:22:37
用<c:foreach>填充的selected怎么动态获取选中值呢?applicationScope.sysParam.goodsType这个数据是从数据库表中动态读取的

	<select id="goodsType" class="easyui-combobox" name="goodsType" style="width:66px;">   
<c:forEach items="${applicationScope.sysParam.goodsType}" var="goodsType">
<option id="types" value="${goodsType.key}">${goodsType.value}</option>
</c:forEach>
</select>



数据库里面读取值对应为goodsType.key 和 goodsType.value 对应数据如:
1 PPE
2 PPR
3 ppc
如何从jquery里面获取当前选中值(key)呢 该如何写?
...全文
568 点赞 收藏 31
写回复
31 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
-妖孽 2015-08-21
引用 29 楼 nicholasbobo 的回复:
不管你用不用<c:foreach>来填充选项,到最后的页面都是html代码,不存在什么动态填充和静态值取值时有区别,你肯定是哪里弄错了,多检查吧
说的没错,看代码用了是easyui的,说不定和<c:foreach>在一起用会有问题,不过我没用过,直接F12检查看看源代码select的值是否都设置对了
回复
vswen5 2015-08-21
这个跟什么静态动态毛线关系啊,就是一个很简单的js获取下拉框的值,我的话一般都是用jquery,在则是根本就不用 你用到struts2的话 在下拉框那取个name后台自动给你将参数封装进去
回复
nicholasbobo 2015-08-21
不管你用不用<c:foreach>来填充选项,到最后的页面都是html代码,不存在什么动态填充和静态值取值时有区别,你肯定是哪里弄错了,多检查吧
回复
tyhdxhl 2015-08-21
引用 26 楼 a_b_a_b_a_b_a_b 的回复:
你的option中为什么设置ID属性,这样一循环 ID不就重复了吗?页面取值受影响的。
加个ID是测试用的 实际是不需要ID的 不过也只能取到一个默认值 头疼 实在不行 就只能 用静态值 了
回复
tyhdxhl 2015-08-21
引用 25 楼 u011098115 的回复:
顶下,如果是我,一般都是用changge 方法。限于水平我也是边试边测。。
多谢
回复
a_b_a_b_a_b_a_b 2015-08-21
你的option中为什么设置ID属性,这样一循环 ID不就重复了吗?页面取值受影响的。
回复
tyhdxhl 2015-08-20
引用 22 楼 Mr_yyy 的回复:
$(#goodsType ).val()这个是可以获取的,并不是LZ说的获取静态值,不知道你获取值的时间点 是在select change之后吗?
这个select 从后台存到前台map里 循环遍历出来的 用平常方法根本取不到的 这个我试过了 只能取到默认值 不能取到任意选定值。 难道是我changge 事件用错了?
回复
Mr_yyy 2015-08-20
$(#goodsType ).val()这个是可以获取的,并不是LZ说的获取静态值,不知道你获取值的时间点 是在select change之后吗?
回复
tyhdxhl 2015-08-20
引用 17 楼 shijing266 的回复:
[quote=引用 16 楼 qq_25223941 的回复:] 直接在option里面设置selected啊 不就可以了? $("#goodsType option:selected").val();
恩,这样可以[/quote] 这句代码 跟 $(#goodsType ).val() 效果一样 的 虽然没帮到我 不过还是认真测试了 感谢热心的大神!
回复
tyhdxhl 2015-08-20
引用 18 楼 q99jqhvjyx 的回复:
代码贴完整些,还有你在页面上显示“3”的那段。
jsp页面代码

	开始时间: <input id="start" type="text" class="easyui-datebox" />
	结束时间: <input id="end" type="text" class="easyui-datebox" />
	<label for="goodsType">材质:</label> 									
				<select id="goodsType" class="easyui-combobox" name="goodsType" style="width:66px;">   
					<c:forEach items="${applicationScope.sysParam.goodsType}" var="goodsType">
					    <option id="types" value="${goodsType.key}">${goodsType.value}</option>   
					</c:forEach>   
				</select>  	
				<div id="result"></div>
js获取代码

<script type="text/javascript">

	$(function(){
	$("#goodsType").change();// 测试动态select框
/* 	document.getElementById('zjj').style.display = "none"; */
		$("#search").click(function(){
			$.ajax({
				url: "${proPath}/inwarehouse/selectInWarehouse.action",
				data: {start:$("#start").datebox("getValue"),end:$("#end").datebox("getValue"),goodsType:$("#goodsType").val()},
				type:'post',
				dataType:'json',
				success:function(result){
				  var list = {};//定义一个数组
					$(result).each(function(i){
					 list[i]=new Array(); //声明二维
					 list.length= i+1;
						list[i][0] = this.goods_type;
					
					});
		
    			}
					});
						});
			
		});
		
	 $("#goodsType").change(function(){ 
 $("#result").html($(this).val()); 
});
		</script>
回复
tyhdxhl 2015-08-20
引用 16 楼 qq_25223941 的回复:
直接在option里面设置selected啊 不就可以了? $("#goodsType option:selected").val();
经测试 对静态加载数据有效 对动态数据库获取后c:forEach 循环数据 无效 不过还是很感谢你的热心回答!
迷茫就像行走在迷宫里,你永远不可能知道出口在哪里。去能闻到 饭菜香气。兴许还能找到解题的兴奋点
回复
q99jqhvjyx 2015-08-20
代码贴完整些,还有你在页面上显示“3”的那段。
回复
引用 16 楼 qq_25223941 的回复:
直接在option里面设置selected啊 不就可以了? $("#goodsType option:selected").val();
恩,这样可以
回复
Cx_轩 2015-08-20
直接在option里面设置selected啊 不就可以了? $("#goodsType option:selected").val();
回复
tyhdxhl 2015-08-20
各位神仙大神 虚心求教各位 感谢各位回答 多个人 多条思路 万分感谢 各位 啊
回复
tyhdxhl 2015-08-20
引用 13 楼 tyhdxhl 的回复:
[quote=引用 12 楼 a291263379 的回复:] $("#goodsType").change(function () { $("#goodsType").val() ; });
<div id="result"></div>

	$("#goodsType").change(function(){ 
 $("#result").html($(this).val()); 
});
显示为3 无论如何改变下拉框值 只会显示默认的3哎 [/quote] 能够在界面上动态读取数据库的三条数据 已经尝试过 select获取选中值得各种代码 都不好使 求助!
回复
tyhdxhl 2015-08-20
引用 12 楼 a291263379 的回复:
$("#goodsType").change(function () {
$("#goodsType").val() ;

});


<div id="result"></div>


$("#goodsType").change(function(){
$("#result").html($(this).val());
});

显示为3 无论如何改变下拉框值 只会显示默认的3哎



回复
豫让_______ 2015-08-20
$("#goodsType").change(function () { $("#goodsType").val() ; });
回复
tyhdxhl 2015-08-20
引用 9 楼 rui888 的回复:
引用 6 楼 tyhdxhl 的回复:
引用 4 楼 a_b_a_b_a_b_a_b 的回复:
$("#goodsType").val() 获取选中的值
早试过 获取的是 jsp页面加载后读取的默认值 获取不到 第二次以后选择的值
为什么获取不到呢? 你实在不行,绑定个change 事件看看
data: {start:$("#start").datebox("getValue"),end:$("#end").datebox("getValue"),goodsType:$("#goodsType").val()
ajax获取的 弹框 只能显示默认值(2) 无论怎么选中其他值 都无效

alert($("#goodsType").val());
值为2 一直是2 烦恼
回复
tyhdxhl 2015-08-20

select * from sys_param


回复
加载更多回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2015-08-20 10:22
社区公告
暂无公告