* @author zhou2003737
* @date 2014/09/25 16:39
*/
<html doctype="html">
<head>
<title></title>
<script type="text/javascript">
window.onload = function(){
//获取文本框对象
var searchText = document.getElementById("searchText")
//获取提交button对象
var action = document.getElementById("action")
//获取要增加到的下拉列表对象
var selections = document.getElementById("selections")
//点击提交的时候执行的方法
action.onclick = function(){
//如果文本框对象中值不为空
if(searchText.value ){
//根据文本框中的值循环5次
for(var i =5i>0i--){
//设置下拉列表中的值的属性
var option = document.createElement("option")
option.value = searchText.value + i
option.text= searchText.value+i
//将option增加到下拉列表中。
selections.options.add(option)
}
}
}
}
//思路如上。你可以将点击时将文本框中值传到后台,后台返回数据后,在将数据存入下拉列表对象中。
</script>
</head>
<body>
<p><input type="text" placeholder="请输入查询对象" autofocus id="searchText"/></p>
<p><input type="button" id="action" value="提交"/></p>
<p><select id="selections">
</select></p>
</body>
</html>
其一:js动态生成的select,在生成时设置上select的name属性,然后通过form表单提交,java后台就能用request根据select的name属性获取。其二:js动态生成的select,在生成时设置上select的id属性,然后通过ajax异步提交的方式,java后台就能用request根据select的name属性获取。
最后,你所谓的文本框中的值,不是这个select的所有option吧?如果是option的value,那就直接request.getParameter()获取即可,如果想获取<option value="a">b</option>中的b,那你需要记住其他办法解决,这里不再赘述。
js获取下拉列表框文本值,例如下面的HTML代码:
<select onchange="isSelected(this.value)" id="city"><option
value="1">北京</option>
<option value="2" >上海</option>
<option value="2" >广州</option>
</select>
也就是说当用户选择“上海”这一列时,需要将“上海”这个名称保存起来。其实方法很简单。看下面javascript代码:
function isSelected(value) {var cityName
var city =
document.getElementById("city")
//获取选中的城市名称
for(i=0i<city.lengthi++){
if(city[i].selected==true){
cityName
= city[i].innerText //关键点
alert("cityName:" + cityName)
}
}
也可以这样做:
function isSelected(value) {var city = document.getElementById("city")
alert(city.options[city.selectedIndex].innerText)
}
大致解释一下,首先在HTML页面上有一个下拉框,并为此下拉框定了一个“city”的id,并为其绑定了一个onchange事件,通过此事件调用javascript函数。
在javascript函数当中,通过domcument对象获取当前下拉框的节点元素,由于节点的值并非只有一个,所以我们可以通过循环节点来得到每个选项的值。在循环的时候通过判断当前选项是否选中,如果选中则使用city[i].innerText
方式获取当前所选中的文本值。当然如果需要获取选项值,只需如此即可:city[i].value.
至此,通过以上方法在IE下已能达到所要的结果。但是,在FIREFOX下测试时,发现此法不起作用,最后通过查阅资料发现另外一个方法。将city[i].innerText
改为 city[i].text即可。这种方法对IE及FIXEFOX都适用!