<pre name=\"code\" class=\"java\">
jsp 中的下拉框标签:
<s:select name=\"sjx\" id=\"sjx\" list=\"sjxList\" listKey=\"BM\" listValue=\"MC\" size=\"20\" cssStyle=\"width:100%;height:70px; border:0\" multiple=\"true\"></s:select>
<pre name=\"code\" class=\"html\">
multiple=\"true\"意思是支持选择多个。
</pre><pre code_snippet_id=\"487056\" snippet_file_name=\"blog_20141017_5_1612209\" name=\"code\" class=\"javascript\">
js中灵活创建select标签下的项的方式:
<pre name=\"code\" class=\"javascript\">var oSelect = $(\"sjx\");<span style=\"white-space:pre\"> </span>//sjx为html或jsp页面上的select标签的id,如果使用Extjs的话,可以用EXT.getDom(\'sjx\')获取标签
var oOption = document.createElement(\"OPTION\");<span style=\"white-space:pre\"> </span>//js中创建select标签下的OPTION子标签
oSelect.options.add(oOption);<span style=\"white-space:pre\"> </span>//将新建的OPTION子标签添加到select标签下
oOption.value = \"001\";<span style=\"white-space:pre\"> </span>//内容对应的value值
oOption.innerHTML =\"小苹果\";<span style=\"white-space:pre\"> </span>//显示的下拉框的内容
...以此类推
Note:js中的这种方式,在特定的场合是比较有用的,比如:这里请求不返回特定界面,也就是不刷新整个界面。而是采用Ajax方式的异步请求做一些局部的数据请求,那么这个时候下面strut2的方式,就会无效。
<pre name=\"code\" class=\"java\"><pre name=\"code\" class=\"java\">for(...){
HashMap<String,Object> map = new HashMap<String,Objcet>();
map.put(\"BM\",\"001\");
map.put(\"MC\",\"小苹果\");
sjxList.add(map);
}
另外一种方式,也是非常常用的:利用struts2的特性,在Action中定义一个List<Object>变量(以本例为例,命名为:sjxList),并设置set、get方法。
通过一个 HashMap 对象,添加内容,比如:
</pre>返回界面时,将在界面的select下拉框中显示“小苹果”。
<pre name=\"code\" class=\"html\">最简单的一种方式:
直接在jsp页面手动添加select标签的OPTION项
<html>
<body>
<form>
<select id=\"cars\" name=\"cars\">
<option value=\"volvo\">Volvo</option>
<option value=\"binli\">Binli</option>
<option value=\"mazda\" selected=\"selected\">Mazda</option>
<option value=\"audi\">Audi</option>
</select>
</form>
</body>
</html>