JavaScript document.form1.prov.options 为空或不为对象
我要做一个省份和城市联动的控件.<select name="prov" id="prov" onChange="changelocation(document.form1.prov.options[document.form1.prov.selectedIndex].value)" style="width:120px" language="javascript" onclick="return prov_onclick()" runat="server">
<option value="" selected >===选择省份===</option>
<option value=北京市>北京市</option>
<option value=天津市>天津市</option>
<option value=上海市>上海市</option>
...
</select>
这是省份的下拉菜单.
<select name="city" id="city" style="WIDTH: 120px" runat="server">
</select>
这是城市的下拉菜单.
<script language = "JavaScript">
var onecount;
onecount=0;
subcat = new Array();
subcat[0] = new Array("石家庄市","河北省","石家庄市");
subcat[1] = new Array("唐山市","河北省","唐山市");
subcat[2] = new Array("秦皇岛市","河北省","秦皇岛市");
....
onecount=341;
function changelocation(locationid)
{
document.form1.city.length = 0;
var locationid=locationid;
var i;
for (i=0;i < onecount; i++)
{
if (subcat[i][1] == locationid)
{
document.form1.city.options[document.form1.city.length] = new Option(subcat[i][0], subcat[i][2]);
}
}
}
</script>
这是js.
现在出现的问题是 当省份和城市的下拉菜单不作为 服务器控件运行时是可以用的.但是我给他们加上runat="server"这句话后就出现标题上的错误,是什么原因呢?
--------------------编程问答-------------------- 但是我给他们加上runat="server"这句话后就出现标题上的错误
====
加上之后,select 的客户端 name/id 可能发生了变化
除了查看生成的html源码,硬编码进入 id 以外,
你可以动态的绑定通过 prov.ClientID/UniqueID 获取客户端id/name
其实你这里只要
changelocation(this.value)
<select name="prov" id="prov" onChange="changelocation(this.value)" style="width:120px" language="javascript" onclick="return prov_onclick()" runat="server">
--------------------编程问答-------------------- 或者
changelocation(document.form1.<%=prov.ClientID%>.options[document.form1.<%=prov.ClientID%>.selectedIndex].value)
补充:.NET技术 , ASP.NET