一个<select>标签,如何获取选中的select的值或者id?<option id="" value="">xxx</option>里有两个属性,id和value,他们有何区别?
一次不经意的错误让我发现了<option>里id和value的区别,呵呵
如下是一段HTML(用了Strut2的标签):
<s:form method="post" action="uploadLogo.action">
<table border="0">
<tr>
<td class="STYLE1" align="left">
<select name="shopId">
<option id="-1">---选择店铺---</option>
<option value="1">行行行行行行</option>
</select>
</td>
</tr>
<tr>
<td><s:submit value="提交" /></td>
</tr>
</table>
</s:form>
当你<option>里只设置id值或者你写错了写成value以外的其他东西,那么,你提交时,传到Struts2的Action类时获取选中的select值将是<option>的value值,也就是你写在<option id="xxx">aaaaa</option>的“aaaaa”。
只有当<option>里只设置value值时,才能获取你选中的select的ID。
也就是说,当你把shopId传到后台时
<select name="shopId">
1)如果此时option设置的是id,那么Action中shopId的值是“---选中店铺---”
<option id="-1">---选择店铺---</option>
2)如果此时option设置的是value,那么Action中shopId的值是“-1”
<option value="-1">---选择店铺---</option>
Struts2Action类测试如下:
public class uploadLogoAction extends ActionSupport{
private String shopId;
public String test(){
System.err.println("shopId:"+shopId);
}
/** getter and setter method */
.....
}