日期:2014-05-18  浏览次数:20466 次

Ajax联动后,取不到下拉列表的值。急!急!急!
页面上有2个下拉框省份和城镇,及一个按钮。
在form_load中:
if(!IsPostBack)
{init();//初始化省份}
//ajax回发
//根据省份得到该省份的城镇
Response.Write(城镇数据);Response.End();

在页面的html代码中省份的单击事件:
{
ajax.open( "Get ", "Register.aspx?txtCity= "   +   parm,true);
ajax.onreadystatechange=CallBackFunCity;
ajax.send(null);
}
在回调函数中:
{
var   areas   =   ajax.responseText;
areas   =   areas.split( ", ");
Form1.ddlArea.options.length   =   0;
for(var   i   =   0;   i <areas.length;   i++){
var   oOption   =   document.createElement( 'OPTION ');
oOption.text   =   areas[i];
oOption.value   =   areas[i];
Form1.ddlArea.options.add(oOption);  
}
}

现在的问题是能够正常联动,页面显示也正常,但是点按钮提交时,却得不到所选择的城镇,只能显示其初始化时候的默认值。
比如说:页面加载时省份框显示 "北京、上海 ", "北京 "默认选中,城镇框显示 "朝阳区、东城区 ", "朝阳区 "默认选中。现在我选择 "上海 "--> "浦东 ",页面显示正常,但按确定按钮时,下拉框的selectItem.text的值确定一直是 "朝阳区 ",为什么呢???

------解决方案--------------------
Request.Params[ "ddlArea "]取得的就是value值。

看看这里

oOption.text = areas[i];
oOption.value = areas[i];

text和value赋值是一样的。

看你的程序好像ajax请求返回来的只是一个城市的字符串,根本就没有返回value值,也就是说option上的value值也是城市的名称,当然只能得到和text一样的值