注册 登录
编程论坛 ASP技术论坛

asp自动计算问题,寻找高手

dongsen 发布于 2010-04-09 08:45, 480 次点击
<script   language="javascript">   
  function   cal()   
  {   
  document.all.s1.value=document.all.x1.value*document.all.x2.value;   
  }   
  </script>   
   
  <form>   
  <input   type=text   name=x1   onblur="javascript:cal();">   
  <input   type=text   name=x2   onblur="javascript:cal();">   
  <input   type=text   name=s1>   
  </form>
这样是 可以自己自动计算,但是如果我想加多一行或者多行的时候又怎么样些呢?
<form>  
<%for i =1 to 10 %>
  <input   type=text   name=x1   onblur="javascript:cal();">   
  <input   type=text   name=x2   onblur="javascript:cal();">   
  <input   type=text   name=s1>
<%next%>   
  </form>
这样为什么不能自动计算能,哪位兄弟帮我解决一下啊,谢谢了
2 回复
#2
cnfarer2010-04-12 08:04
第二种情况下Form中对象明显不同了,产生的是数组吧,当然不能这样计算了!
#3
zzy_4202010-04-12 23:51
你这样运行完之后,将会有 10个叫x1的控件,10个叫x2的控件,10个叫s1的控件,那么你叫cal()怎么去调用呢?

关键问题就是你使用的名字冲突了。假如你用不同的名字运行就会一点问题也没有了。比如如下:


<script   language="javascript">   
  function   cal()   
  {   
  document.all.s1.value=document.all.x1.value*document.all.x2.value;   
  }   
    function   cal2()   
  {   
  document.all.s2.value=document.all.x3.value*document.all.x4.value;   
  }
  
     
  </script>

<form>  
  <input   type=text   name=x1   onblur="javascript:cal();">   
  <input   type=text   name=x2   onblur="javascript:cal();">   
  <input   type=text   name=s1>

  <input   type=text   name=x3   onblur="javascript:cal2();">   
  <input   type=text   name=x4   onblur="javascript:cal2();">   
  <input   type=text   name=s2>
  </form>

运行情况正常。

不管如何说还是需要你自己亲自去试一下的。

这个话题你发好多次了,但是不能总等着别人一点点的都告诉你,我们只能告诉为什么那样不行,原因就是名字冲突。

只要名字不一样你的程序就没有问题了。就像上面的一样,只是代码可能要多一点。你也可以想一下用传递参数实现循环,

就不用向我那样写那么多代码了,太晚了,我也没有时间去想,祝你好运。

具体的还需要你自己去思考,总结,提高。


1