在JS里,初始化多个页面的下拉框,所用方法相同,但只是最后一个(N)起作用。
当把初始化第N个下拉框的代码注释掉后,第N-1个下拉框就可以被初始化,但是1~N-2个下拉框仍然不能初始化,也不报错。
请问大侠是啥问题呢。代码:
var sM2=document.form1.stM2.value;
var sM3=document.form1.stM3.value; document.form1 .txtItmeID.value="stM7";//set txtItmeID
_Default.GetDataTable("select t0.u_code code,t0.u_name name from [@TS_M_MY] t0 where t0.u_C=N'"+ sM2 +"' and t0.u_n='"+ sM3 +"' and isnull(t0.u_s,'')='"+ document.form1.stM4.value +"' order by t0.U_Code",InitSelect);
document.form1 .txtItmeID.value="stM8";//set txtItmeID
_Default.GetDataTable("select t0.u_code code,t0.u_name name from [@TS_M_MT] t0 where t0.u_C=N'"+ sM2 +"' and t0.u_n='"+ sM3 +"' order by t0.U_Code",InitSelect);
document.form1 .txtItmeID.value="stM9";//set txtItmeID
_Default.GetDataTable("select t0.u_code code,t0.u_name name from [@TS_M_MP] t0 where t0.u_C=N'"+ sM2 +"' and t0.u_n='"+ sM3 +"' order by t0.U_Code",InitSelect);
document.form1 .txtItmeID.value="stM10";//set txtItmeID
_Default.GetDataTable("select t0.u_code code,t0.u_name name from [@TS_M_MR] t0 order by t0.U_Code",InitSelect);其中用到了ajax方法。 _Default.GetDataTable为后台方法,参数为SQL语句,返回值为DataTable。
InitSelect为JS方法,初始化下拉框用。
控件txtItmeID记录要初始化的下拉框ID。
方法InitSelect:
//Inint Select
function InitSelect(response)
{
var dt = response.value;
if(dt != null && typeof(dt) == "object" && dt != null)
{
var obj;
obj=document.getElementById(document.form1.txtItmeID.value);//txtItmeID record the ID of Items
var n=obj.length;
for (var i=1;i<n;i++)
{
obj.options.remove(obj.length-1);
} n=dt.Rows.length;
for (var i=0;i<n;i++)
{
obj.options[obj.length]=new Option(dt.Rows[i].code+"-"+dt.Rows[i].name,dt.Rows[i].code);
}
}}
当把初始化第N个下拉框的代码注释掉后,第N-1个下拉框就可以被初始化,但是1~N-2个下拉框仍然不能初始化,也不报错。
请问大侠是啥问题呢。代码:
var sM2=document.form1.stM2.value;
var sM3=document.form1.stM3.value; document.form1 .txtItmeID.value="stM7";//set txtItmeID
_Default.GetDataTable("select t0.u_code code,t0.u_name name from [@TS_M_MY] t0 where t0.u_C=N'"+ sM2 +"' and t0.u_n='"+ sM3 +"' and isnull(t0.u_s,'')='"+ document.form1.stM4.value +"' order by t0.U_Code",InitSelect);
document.form1 .txtItmeID.value="stM8";//set txtItmeID
_Default.GetDataTable("select t0.u_code code,t0.u_name name from [@TS_M_MT] t0 where t0.u_C=N'"+ sM2 +"' and t0.u_n='"+ sM3 +"' order by t0.U_Code",InitSelect);
document.form1 .txtItmeID.value="stM9";//set txtItmeID
_Default.GetDataTable("select t0.u_code code,t0.u_name name from [@TS_M_MP] t0 where t0.u_C=N'"+ sM2 +"' and t0.u_n='"+ sM3 +"' order by t0.U_Code",InitSelect);
document.form1 .txtItmeID.value="stM10";//set txtItmeID
_Default.GetDataTable("select t0.u_code code,t0.u_name name from [@TS_M_MR] t0 order by t0.U_Code",InitSelect);其中用到了ajax方法。 _Default.GetDataTable为后台方法,参数为SQL语句,返回值为DataTable。
InitSelect为JS方法,初始化下拉框用。
控件txtItmeID记录要初始化的下拉框ID。
方法InitSelect:
//Inint Select
function InitSelect(response)
{
var dt = response.value;
if(dt != null && typeof(dt) == "object" && dt != null)
{
var obj;
obj=document.getElementById(document.form1.txtItmeID.value);//txtItmeID record the ID of Items
var n=obj.length;
for (var i=1;i<n;i++)
{
obj.options.remove(obj.length-1);
} n=dt.Rows.length;
for (var i=0;i<n;i++)
{
obj.options[obj.length]=new Option(dt.Rows[i].code+"-"+dt.Rows[i].name,dt.Rows[i].code);
}
}}
解决方案 »
- 一个关于远程备份数据库的问题
- 深夜无法睡眠呀,关于刷新问题,怎么保持刷新前的状态!!!!谢谢大家了撒!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 关于gridview模板小问题,分不多了,回头另给,谢谢了。。。在线等!!
- 问一个关于VS2005
- TreeView控件与Meun控件(请高手指教)
- 非常着急的问题!!!!!!!!
- 更新插入不进去信息
- Web新人求助,在html中如何隐藏图片的真实地址?
- asp.net(VB)的高手请进,新手问两个问题,困扰我好几天了! T_T
- 哪位大哥能告诉我怎样把数据纪录写到数据库中,当库中存在相同编号的纪录时,弹出警告框,提示纪录已经存在啊
- 这个接口应该怎么设计
- 在一个页面里调用另一个页面里的类
/Inint Select
function InitSelect(response)
{
var dt = response.value;
if(dt != null && typeof(dt) == "object" && dt != null)
{
var obj;
obj=document.getElementById(document.form1.txtItmeID.value);//txtItmeID record the ID of Items
var n=obj.options.length;
for (var i=0;i <n;i++)
{
obj.options.remove(i);
} n=dt.Rows.length;
for (var i=0;i <n;i++)
{
obj.options[i]=new Option(dt.Rows[i].code+"-"+dt.Rows[i].name,dt.Rows[i].code);
}
}}
谢谢mqc507。obj.options.remove(i);
和obj.options.remove(obj.length-1);
没什么区别。问题应该不在这儿。
obj=document.getElementById(document.form1.txtItmeID.value);//txtItmeID record the ID of Items
这是后台设定的?是不是每次都设定了最后一个
_Default.GetDataTable("select t0.u_code code,t0.u_name name from [@TS_M_MP] t0 where t0.u_C=N'"+ sM2 +"' and t0.u_n='"+ sM3 +"' order by t0.U_Code",InitSelect);
估计这个还没返回值 就已经执行下面的
document.form1 .txtItmeID.value="stM10";//set txtItmeID 赋值了
想办法让它一个执行完了再执行下一个