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一样的值