在<select> </select>的更改事件期间传递多个值

时间:2012-03-24 15:19:26

标签: ajax jsp

Dropdown list 1:

<select name="ddlArea" onchange="showState(this.value)">  

Dropdown list 2:

<select name="ddlFType" onchange="showState(this.value)">  

我想在showState函数中获取两个下拉列表的选定值。我想调用相同的函数,因为ajax请求将在不同页面上处理,这需要参数AreaFType

功能:

function showState()
                {
                     var area_value = document.getElementById("ddlArea").value;
                     var ftype= document.getElementById("ddlFType").value;
                    if(document.getElementById("ddlFlat").value!="-1" )
                    {
                        xmlHttp=GetXmlHttpObject()
                        if (xmlHttp==null)
                        {
                            alert ("Browser does not support HTTP Request")
                            return
                        }
                        var url="vacant_do.jsp"
                        url=url+"?area_id="+area_value+"ftype"+ftype

                        xmlHttp.onreadystatechange=stateChange
                        xmlHttp.open("GET",url,true)
                        xmlHttp.send(null)

                    }
                    else
                    {
                        alert("Please Select Area Name");
                    }
                }

                function stateChange()
                {
                    if (xmlHttp.readyState==4 || xmlHttp.readyState==200)
                    {
                        document.getElementById("ddlFlat").innerHTML=xmlHttp.responseText
                         }
                }

1 个答案:

答案 0 :(得分:0)

由于您只是尝试使用2个参数调用AJAX查询,因此我不会通过onChange推送值。

Combo -Box 1:-  
<select name="ddlArea" id="ddlArea" onchange="showState()">  
Combo -Box 2:-  
<select name="ddlFType" id="ddlFType" onchange="showState()">  

然后:

function showState()  {  
   var area = document.getElementById('ddlArea').value;
   var fType= document.getElementById('ddlFType').value;
   ....invokeAJAX request....
}

你可以通过某种原型/闭包方法来做到这一点,但实际上,你已经知道从哪里获取信息了,而且它不会在页面上改变