当前位置:编程学习 > C#/ASP.NET >>

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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,