document.getElementById(iRow);奇怪的事情

ksmark 2011-11-24 07:22:55
具体代码如下:
我想通过下面的代码来获取我页面中gridview中的label控件中的值,最后采用循环的方式来获取,但最后在红色字体的地方怎么也取不到我要的控件。
iRow始终都显示的是iRow,没有具体的值。
我通过断点调试过,能够看到iRow当时是被赋值过的,但是 strLabelVOC 结果等于null。


//在txtHijyu焦点失去的时候计算VOC% VOC总量
function txtHijyu_LoseFocus() {
var obj = document.getElementById("txtHijyu"); //记录比重文本框
var objVOCPer = document.getElementById("txtVOCPer"); //记录VOC%
var objVOCTotal = document.getElementById("txtVOCTotal"); //记录VOCTotal
var gv = document.getElementById("<%=GVMSDS.ClientID%>");
var iVOCPer = 0; //记录VOC%
var iVOCTotal = 0; //记录VOCTotal
var strLabelVOC; //记录GVMSDS中绑定的labelVOC
var strLabelMID; //记录GVMSDS中绑定的labelMID值
var iRow="";//记录GVMSDS的行数
if (obj.value != "") {
for (var i = 2; i < gv.rows.length + 2; i++) {
iRow = "GVMSDS_ctl" + i + "_lblVOC";
if (i < 10) {
iRow ="GVMSDS_ctl" + "0" + i + "_lblVOC" ;
}

strLabelVOC = document.getElementById(iRow);
strLabelMID = document.getElementById(iRow);

if (strLabelVOC.value == "○") {
iVOCPer = iVOCPer + parseFloat(strLabelMID.value);

}

}
objVOCPer.value = iVOCPer;
iVOCTotal = iVOCPer * 0.01 * parseFloat(obj.value) * 1000;
objVOCTotal.value = iVOCTotal;

}

}
...全文
92 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ksmark 2011-11-24
  • 打赏
  • 举报
回复
楼上的不正确啊。
不过在一楼的帮助下。搞定了。



最终代码附上:
//在txtHijyu焦点失去的时候计算VOC% VOC总量
function txtHijyu_LoseFocus() {
var obj = document.getElementById("txtHijyu"); //记录比重文本框
var objVOCPer = document.getElementById("txtVOCPer"); //记录VOC%
var objVOCTotal = document.getElementById("txtVOCTotal"); //记录VOCTotal
var gv = document.getElementById("<%=GVMSDS.ClientID%>");
var iVOCPer = 0; //记录VOC%
var iVOCTotal = 0; //记录VOCTotal
var strLabelVOC; //记录GVMSDS中绑定的labelVOC
var strLabelMID; //记录GVMSDS中绑定的labelMID值
var iRow="";//记录GVMSDS的行数
if (obj.value != "") {
for (var i = 2; i < gv.rows.length +1; i++) {
iRow = i ;
if (i < 10) {
iRow = "0" + i ;
}
// strLabelVOC = document.getElementById("GVMSDS_ctl" + iRow + "_lblVOC").value;
// strLabelMID = document.getElementById("GVMSDS_ctl" + iRow + "_lblWTMID").value;
strLabelVOC = $("#" + "GVMSDS_ctl" + iRow + "_lblVOC").html();
strLabelMID = $("#" + "GVMSDS_ctl" + iRow + "_lblWTMID").html();

if (strLabelVOC == "○") {
iVOCPer = iVOCPer + parseFloat(strLabelMID);

}

}
objVOCPer.value = iVOCPer;
iVOCTotal = iVOCPer * 0.01 * parseFloat(obj.value) * 1000;
objVOCTotal.value = iVOCTotal;

}

}
小豪 2011-11-24
  • 打赏
  • 举报
回复
strLabelVOC = document.getElementById('<%=iRow.ClientID%>');
小豪 2011-11-24
  • 打赏
  • 举报
回复

strLabelVOC = document.getElementById('<%=iRow%>');
心情灬麻醉师 2011-11-24
  • 打赏
  • 举报
回复
生成页面看看源代码里那个label的id是什么
ksmark 2011-11-24
  • 打赏
  • 举报
回复
strLabelVOC 是用来存放服务器端控件的。想要gridview中的label控件中的值。
qingYun1029 2011-11-24
  • 打赏
  • 举报
回复
strLabelVOC = document.getElementById(iRow);
strLabelMID = document.getElementById(iRow);

参数是字符串类型的,要加双引号。。。
yue547283947 2011-11-24
  • 打赏
  • 举报
回复
strLabelVOC 是服务器控件还是客户端?

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧