js控制DropDownList无法获得选中的值得有关问题
js控制DropDownList无法获得选中的值得问题
用js实现二级联动功能。效果看着没问题,就是无法获得代表二级分类的DropDownList控件选中的值。
二级分类控件DropDownList的每一项都是js生成的。
查了很多资料都没搞定。给位给解决一下呀。
以下是控制二级分类的代码
<%
Response.Write("<script language=javascript>");
Response.Write("var sidArr = new Array(");
string strSql = "select pid,id,cname from sortc where pid<>0 and chan='"+tab+"' order by pid asc, cor asc";
System.Data.DataSet ds = new System.Data.DataSet();
System.Data.SqlClient.SqlConnection conn = sql.getConn();
System.Data.SqlClient.SqlDataAdapter da=new System.Data.SqlClient.SqlDataAdapter(strSql,conn);
da.Fill(ds);
int itbRowCount = ds.Tables[0].Rows.Count;
int i = 0;
foreach(System.Data.DataRow row in ds.Tables[0].Rows)
{
Response.Write("new Array('" + row[0].ToString() + "','" + row[1].ToString() + "','" + row[2].ToString() + "'),");
}
Response.Write("new Array('0','0','0')");
ds.Dispose();
ds = null;
Response.Write(");");
Response.Write("</script>");
%>
<script language="javascript" type="text/javascript">
function CIDonchange(sfId)
{
var dropSid=document.getElementById("sid");
if (sfId!="")
{
var Dqstr="";j=0,p=0;
for (i=0;i<sidArr.length;i++)
{
if (sidArr[i][0]==sfId)
{
j=j+1;
Dqstr=Dqstr+sidArr[i][1]+","+sidArr[i][2]+",";
}
}
dropSid.length=j+1; //document.Form1.
sidArr1=Dqstr.split(",");
dropSid.options[0].value="0";
dropSid.options[0].text = "selcid"; //document.Form1. 请选择小类
for (i=1;i<=j;i++)
{
if(sidArr1[p] != null && sidArr1[p] != "")
{
dropSid.options[i].value = sidArr1[p]; //document.Form1.
dropSid.options[i].text = sidArr1[p+1]; //document.Form1.
}
p=p+2;
}
}
}
</script>
------解决方案--------------------
使用js动态生成表单控件需要给定name,同时要在表单中,后台再根据相应的name来获取值
------解决方案--------------------
用Request.Form["下拉的name"]来获取,不用用服务器端的 控件ID.Value,这样获取不到js设置的值
用js实现二级联动功能。效果看着没问题,就是无法获得代表二级分类的DropDownList控件选中的值。
二级分类控件DropDownList的每一项都是js生成的。
查了很多资料都没搞定。给位给解决一下呀。
以下是控制二级分类的代码
<%
Response.Write("<script language=javascript>");
Response.Write("var sidArr = new Array(");
string strSql = "select pid,id,cname from sortc where pid<>0 and chan='"+tab+"' order by pid asc, cor asc";
System.Data.DataSet ds = new System.Data.DataSet();
System.Data.SqlClient.SqlConnection conn = sql.getConn();
System.Data.SqlClient.SqlDataAdapter da=new System.Data.SqlClient.SqlDataAdapter(strSql,conn);
da.Fill(ds);
int itbRowCount = ds.Tables[0].Rows.Count;
int i = 0;
foreach(System.Data.DataRow row in ds.Tables[0].Rows)
{
Response.Write("new Array('" + row[0].ToString() + "','" + row[1].ToString() + "','" + row[2].ToString() + "'),");
}
Response.Write("new Array('0','0','0')");
ds.Dispose();
ds = null;
Response.Write(");");
Response.Write("</script>");
%>
<script language="javascript" type="text/javascript">
function CIDonchange(sfId)
{
var dropSid=document.getElementById("sid");
if (sfId!="")
{
var Dqstr="";j=0,p=0;
for (i=0;i<sidArr.length;i++)
{
if (sidArr[i][0]==sfId)
{
j=j+1;
Dqstr=Dqstr+sidArr[i][1]+","+sidArr[i][2]+",";
}
}
dropSid.length=j+1; //document.Form1.
sidArr1=Dqstr.split(",");
dropSid.options[0].value="0";
dropSid.options[0].text = "selcid"; //document.Form1. 请选择小类
for (i=1;i<=j;i++)
{
if(sidArr1[p] != null && sidArr1[p] != "")
{
dropSid.options[i].value = sidArr1[p]; //document.Form1.
dropSid.options[i].text = sidArr1[p+1]; //document.Form1.
}
p=p+2;
}
}
}
</script>
------解决方案--------------------
使用js动态生成表单控件需要给定name,同时要在表单中,后台再根据相应的name来获取值
------解决方案--------------------
用Request.Form["下拉的name"]来获取,不用用服务器端的 控件ID.Value,这样获取不到js设置的值