JS调用后台数据查询,让查询到的数据在下拉列表里显示

JavaScript08

JS调用后台数据查询,让查询到的数据在下拉列表里显示,第1张

/**

 * @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都适用!