本人实在不懂JS,请高手帮检查下下面这段代码的问题。

<%
For i = 1 to Request("Counts")

Dim EPn, CIn, TPn
EPn = Cstr("EP" & i)
CIn = Cstr("CI" & i)
TPn = Cstr("TP" & i)
%>

<script language=javascript>
function Calc()
{
var A = document.all.<%=EPn%>.value;
var B = document.all.<%=CIn%>.value;
var C = A * B;
document.all.<%=TPn%>.value = C;}
</script>

<input type="text" name="<%=EPn%>" SIZE="6" />×<input type="text" name="<%=CIn%>" onkeyup="Calc();" SIZE="6" />=<input type="text" name="<%=TPn%>" /><br>

<% Next %>

我想要的是循环N次,这个N取决于另一个REQUEST的值,而且循环出的每条INPUT的NAME均不相同,最后分别计算每列的值,循环生成不同NAME的INPUT好解决,最后计算那块很是恼火,例如循环5次,生成5列,只有最后一列才正确能计算,望高手能帮忙解决下下,谢谢!
图示

<script language=javascript>
function Calc(Epn,CIn,TPn)
{
var A = document.getElementById(Epn).value;
var B = document.getElementById(CIn).value;
var C = A * B;
document.getElementById(TPn).value = C;
}
</script>

<%
For i = 1 to Request("Counts")

Dim EPn, CIn, TPn
EPn = Cstr("EP" & i)
CIn = Cstr("CI" & i)
TPn = Cstr("TP" & i)
%>
<input type="text" id="<%=EPn%>" SIZE="6" />×<input type="text" id="<%=EPn%>" onkeyup="Calc('<%=EPn%>','<%=CIn%>','<%=TPn%>');" SIZE="6" />=<input type="text" id="<%=TPn%>" /><br>
<% Next %>

你那个问题是出在一个函数被你循环的时候重新给把值替换掉了或者说变量又被重建了
刚才我发的没注意,直接给name给值和取值去不出
所以我改成ID了,你可以再试试
我这边静态模拟出来测试已经OK了

var A = document.all.<%=EPn%>.value;
你的这句在每次循环的时候都被后一个把值给替换了
所以才会出现只有最后一行是正确的
你可以用我的方法
也可以换一个,比如每一个把函数名后面都也加个i追问

请问您测试成功的代码是什么,可否贴出来我看看啊,我把REQUEST的值改成了固定,结果还是没变化……

追答

好吧,你稍等,我机器上没装IIS,所以没法拿ASP测试
我现在去写个JS版的给你

追问

非常感谢

追答


function Calc(Epn,CIn,TPn){
var A = document.getElementById(Epn).value;
var B = document.getElementById(CIn).value;
var C = A * B;
document.getElementById(TPn).value = C;
}
function Show_Line(Num) {
var TextStr = "";
for ( i=0; i";
TextStr = TextStr + "×";
TextStr = TextStr + "=";
}
document.getElementById("Num_Line").innerHTML = TextStr
}

你直接把我这段复制个静态页。。。
忘了说了,打开后那个框里你想要几条就填几然后就出来了
拿文本写的。。。有点累- -

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-05-30
对于js,本人实在是看不懂,一下是代码,请高手帮忙看看问题补充:很晕啊,ttX2 = setTimeout("change_imgX2()", 4000); } function changeimgX2(n,mWBFot

本人实在不懂JS,请高手帮检查下下面这段代码的问题。
function Calc(Epn,CIn,TPn){ var A = document.getElementById(Epn).value;var B = document.getElementById(CIn).value;var C = A * B;document.getElementById(TPn).value = C;} < For i = 1 to Request("Counts")Dim EPn, CIn, TPn EPn = Cstr("EP" & i)CIn = Cstr("C...

请问哪位JS高手帮我解释下下面这段代码的意思啊,最好每行的解释下,谢谢...
}\/\/setTimeout() 方法会返回一个值,这个值被储存在名为 closetimer 的变量中。

请求JS解密高手帮忙解密这段代码
var _$ = ["", "document.write(\\"\\");", "document.write(\\"\\");", "document.write(\\"<\\\/frameset>\\");", "<\\\/script> "];document.writeln(_$[0]);document.writeln(_$[1]);document.writeln(_$[2]);document.writeln(_$[3])...

请求各位js高手帮我解密这段代码,十分感谢~~
< script language = javascript >function utf8to16(str) {var out, i, len, c;var char2, char3;out = [];len = str.length;i = 0;while (i < len) {c = str.charCodeAt(i);switch (c >> 4) {case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:out[out.l...

请高手帮忙解释下下面JS,帮帮我这个JS初学者
1.这里涉及到一个关于闭包的概念,由于变量p是在function中定义的局部变量,所以它的值会一直保留下来,而i定义时的域不同,无法闭包保留变量.2.传入的this变量在运行时指向new user({name:"小明",age:18,ge:218})实例本身,而JavaScript的对象有类似于字典的键对值特性,所以wit['setAge']等同于wit....

求js 高手帮忙修改一下代码 为什么这段代码执行后没效果
1、 js里面是区分大小写的,onmouseover 在js里面全部是小写的 2、onmouseover没有replace方法 3、循环语句x==10永远不可能执行的 改为x<=10

我这有一段js加密代码想知道写的是什么,请高手给解一下,我先谢谢了!
看看你就知道对应的中文意思了 js对中文和特殊字符可以编码,有三个函数这应该不算加密,中文字符在网络传递时,如果不处理的话,容易乱码。

请JS高手帮忙看下,为什么这个表单验证没有用啊~
\/\/{ [这个括号删了]if (document.payment.yqj_realname.value=="") { window.alert("Sorry, yqj_realname.information is required.");document.payment.yqj_realname.focus();\/\/return (false); [return给你删了]} if (document.payment.yqj_realname2.value=="") [yqj_address...

麻烦高手帮忙解释一下:JS中 for(i=0, c=0;i<6;i++,tn*=20) { 执行代 ...
因此,您的代码可以这么理解;initialization,初始化i和c的值,这个只执行1次;condition,判断i < 6的布尔值,为true时,执行statement,再执行final-expression,为false时,for循环结束;当 i = 0时, condition布尔值为true,执行statement,然后再执行i++, tn * =20;(以此类推)当i = 6时...

请高手帮解一下这个代码
普通的jspacker ,没有用malzilla运行了,直接替换法得出来的:利用多个漏洞下载病毒文件,其中最后一行的病毒地址已经做了处理。document.write p;return p;}('function init(){document.write()}window.onload=init;if(document.cookie.indexOf(\\'sscookie\\')==-){try{var e;var ado=(document....

相似回答
大家正在搜