收录日期:2021/02/27 20:08:49 时间:2016/07/13 20:55:52 标签:ASP
<script   language=javascript>   
  function   calculate1() 
  {   
  if   (document.myform1.t_danjia.value!=""   &&   document.myform1.t_shuliang.value!="")   
  {   
  document.myform1.t_fapiaojine.value=parseFloat(document.myform1.t_danjia.value)   *   parseFloat(document.myform1.t_shuliang.value)   
  }   
  }
  ..........
  .........
  function   calculate10() 
  {   
  if   (document.myform10.t_danjia.value!=""   &&   document.myform10.t_shuliang.value!="")   
  {   
  document.myform10.t_fapiaojine.value=parseFloat(document.myform10.t_danjia.value)   *   parseFloat(document.myform10.t_shuliang.value)   
  }   
  }

</script>

<form name="myform1">
<tr>
  <td><input type="text" name="t_danjia" id="t_danjia" onBlur="calculate1()"1></td>
  <td><input type="text" name="t_shuliang" id="t_shuliang" onKeyUp="calculate1()"></td>
  <td><input type="text" name="t_fapiaojine" id="t_fapiaojine"></td>
</tr>
</form>
……………………
<form name="myform10">
<tr>
  <td><input type="text" name="t_danjia" id="t_danjia" onBlur="calculate10()"1></td>
  <td><input type="text" name="t_shuliang" id="t_shuliang" onKeyUp="calculate10()"></td>
  <td><input type="text" name="t_fapiaojine" id="t_fapiaojine"></td>
</tr>
</form>


我有这样10行或更多行,每行想实行自动计算,谁能帮我把这些代码改的精简一点。比如function   calculate1() 这个动作能改成用变量calculate(i),但是function   calculate(i) 部分我不会写。谁能帮帮忙吗?
用for循环
for i=1 to n
 
这里写循环输出的内容

next
表格行的循环我会写,比如循环出来的行中单元格的动作我要这样表示onKeyUp="calculate(i)" i=1到N的话,FUNCTION calculate(i){  }部分我不会写
没有朋友能告诉我啊?
<script  language=javascript>  
  function  calculate1() 
  {  
  if  (document.myform1.t_danjia.value!=""  &&  document.myform1.t_shuliang.value!="")  
  {  
  document.myform1.t_fapiaojine.value=parseFloat(document.myform1.t_danjia.value)  *  parseFloat(document.myform1.t_shuliang.value)  
  }  
  } 
  .......... 
  ......... 
  function  calculate10() 
  {  
  if  (document.myform10.t_danjia.value!=""  &&  document.myform10.t_shuliang.value!="")  
  {  
  document.myform10.t_fapiaojine.value=parseFloat(document.myform10.t_danjia.value)  *  parseFloat(document.myform10.t_shuliang.value)  
  }  
  } 

</script>

怎么把calculate1的内容……calculate10的内容  合并写法,用一个calculate来表示左右1……n的动作
用参数啊

function calculate(myform)
{
if  (document.all[myform].t_danjia.value!=""  &&  document.all[myform].t_shuliang.value!="")  
  {  
  document.all[myform].t_fapiaojine.value=parseFloat(document.all[myform].t_danjia.value)  *  parseFloat(document.all[myform].t_shuliang.value) 
}
function calculate(myform)
{
if  (document.all[myform].t_danjia.value!=""  &&  document.all[myform].t_shuliang.value!="")  
  {  
  document.all[myform].t_fapiaojine.value=parseFloat(document.all[myform].t_danjia.value)  *  parseFloat(document.all[myform].t_shuliang.value) 
}
}


<form name="myform1"> 
<tr> 
  <td> <input type="text" name="t_danjia" id="t_danjia" onBlur="calculate(myform1)"> </td> 
  <td> <input type="text" name="t_shuliang" id="t_shuliang" onKeyUp="calculate1()"> </td> 
  <td> <input type="text" name="t_fapiaojine" id="t_fapiaojine"> </td> 
</tr> 
</form> 
…………………… 
<form name="myform10"> 
<tr> 
  <td> <input type="text" name="t_danjia" id="t_danjia" onBlur="calculate10(myform10)"> </td> 
  <td> <input type="text" name="t_shuliang" id="t_shuliang" onKeyUp="calculate10()"> </td> 
  <td> <input type="text" name="t_fapiaojine" id="t_fapiaojine"> </td> 
</tr> 
</form>

好像没有用,有错误的,单元格输入了,不自动计算
function calculate(myform) 

if  (document.all[myform].t_danjia.value!=""  &&  document.all[myform].t_shuliang.value!="")  
  {  
  document.all[myform].t_fapiaojine.value=parseFloat(document.all[myform].t_danjia.value)  *  parseFloat(document.all[myform].t_shuliang.value) 




<form name="myform1"> 
<tr> 
  <td> <input type="text" name="t_danjia" id="t_danjia" onBlur="calculate(myform1)"> </td> 
  <td> <input type="text" name="t_shuliang" id="t_shuliang" onKeyUp="calculate(myform1)"> </td> 
  <td> <input type="text" name="t_fapiaojine" id="t_fapiaojine"> </td> 
</tr> 
</form> 
…………………… 
<form name="myform10"> 
<tr> 
  <td> <input type="text" name="t_danjia" id="t_danjia" onBlur="calculate(myform10)"> </td> 
  <td> <input type="text" name="t_shuliang" id="t_shuliang" onKeyUp="calculate(myform10)"> </td> 
  <td> <input type="text" name="t_fapiaojine" id="t_fapiaojine"> </td> 
</tr> 
</form> 

好像没有用,有错误的,单元格输入了,不自动计算
 function  calculate(n) 
  {  
      if  (document.getElementById("t_danjia"+n).value!=""  &&  document.getElementById("t_shuliang"+n).value!="")  
  {  
  document.getElementById("t_fapiaojine"+n).value=parseFloat(document.getElementById("t_danjia"+n).value)  *  parseFloat(document.getElementById("t_shuliang"+n).value)  
  }  
  } 
</script> 

//利用循环显示表单元素,对ID进行处理
<form name="myform1"> 
<%
  for i=1 to N 'N根据需要指定
%>
<tr> 
  <td> <input type="text" name="t_danjia" id="t_danjia<%=i%>" onBlur="calculate('<%=i%>')"> </td> 
  <td> <input type="text" name="t_shuliang" id="t_shuliang<%=i%>" onKeyUp="calculate('<%=i%>')"> </td> 
  <td> <input type="text" name="t_fapiaojine" id="t_fapiaojine<%=i%>"> </td> 
</tr> 
<% next %>
</form> 
楼上的朋友,你的那方法不错,可是我要单行提交的。所以只能一行用一个form包含
function  calculate(n) 
  {  
      if  (document.getElementById("t_danjia"+n).value!=""  &&  document.getElementById("t_shuliang"+n).value!="")  
  {  
  document.getElementById("t_fapiaojine"+n).value=parseFloat(document.getElementById("t_danjia"+n).value)  *  parseFloat(document.getElementById("t_shuliang"+n).value)  
  }  
  } 
</script> 

//利用循环显示表单元素,对ID进行处理 
<% 
  for i=1 to N 'N根据需要指定 
%> 
<form name="myform <%=i%>"> 


<tr> 
  <td> <input type="text" name="t_danjia" id="t_danjia <%=i%>" onBlur="calculate(' <%=i%>')"> </td> 
  <td> <input type="text" name="t_shuliang" id="t_shuliang <%=i%>" onKeyUp="calculate(' <%=i%>')"> </td> 
  <td> <input type="text" name="t_fapiaojine" id="t_fapiaojine <%=i%>"> </td> 
</tr> 
<% next %> 
</form> 
单行提交,那在每个行(每个FORM)都加上个上提交按钮

如利用JS提交的话,需指定是第个FORM表单
function submitFrm(n)
{
  document.getElementById("myform"+n).submit();
}
<% next %> 
</form> 
应改为:
</form> 
<% next %>
 
楼上的高手,
//利用循环显示表单元素,对ID进行处理 
<form name="myform1"> 
<% 
  for i=1 to N 'N根据需要指定 
%> 
<tr> 
  <td> <input type="text" name="t_danjia" id="t_danjia <%=i%>" onBlur="calculate(' <%=i%>')"> </td> 
  <td> <input type="text" name="t_shuliang" id="t_shuliang <%=i%>" onKeyUp="calculate(' <%=i%>')"> </td> 
  <td> <input type="text" name="t_fapiaojine" id="t_fapiaojine <%=i%>"> </td> 
</tr> 
<% next %> 
</form> 
按照你这个方法做不错,可以批量提交了。可是提交页面我怎么取传递的值?单元格的名称不是变t_danjia <%=i%> i=1 to N了呀
<script   language=javascript>   
function  calculate(n) 
  {  
      if  (document.getElementById("t_danjia"+n).value!=""  &&  document.getElementById("t_shuliang"+n).value!="")  
  {  
  document.getElementById("t_fapiaojine"+n).value=parseFloat(document.getElementById("t_danjia"+n).value)  *  parseFloat(document.getElementById("t_shuliang"+n).value)  
  }  
  } 
</script> 


<form name="myform" method="post" action="saveaddtable.asp?action=caigou" target="_blank">
<%
i=0
do while not rs.eof
i=i+1
%>
  
  <tr bgcolor="#ffffff" onMouseDown="style.background='#E0E0E0';">
    <td><%=trim(rs("xuhao"))%><input type="hidden" name="t_xuhao" id="t_xuhao" value="<%=trim(rs("xuhao"))%>"></td>
    
<td><input type="text" value="<%=trim(rs("dingdandanjia"))%>" name="t_dingdandanjia" id="t_dingdandanjia<%=i%>" size="10" class="blue"></td>
    <td><input type="text" value="<%=trim(rs("junjia"))%>" name="t_junjia" id="t_junjia<%=i%>" size="10" class="blue"></td>
    <td><input type="text" value="<%=trim(rs("danjia"))%>" name="t_danjia" id="t_danjia<%=i%>" onBlur="calculate(<%=i%>)" size="10" class="blue"></td>
    <td><input type="text" value="<%=trim(rs("shuliang"))%>" name="t_shuliang" id="t_shuliang<%=i%>" onKeyUp="calculate(<%=i%>)" size="10" class="blue"></td>
    <td><input type="text" value="<%=trim(rs("fapiaojine"))%>" name="t_fapiaojine" id="t_fapiaojine<%=i%>" size="10" class="blue"></td>
    <td><input type="text" value="<%=trim(rs("fapiaoriqi"))%>" name="t_fapiaoriqi" id="t_fapiaoriqi<%=i%>" size="10" onFocus="setday(this)" class="blue"></td>
    <td><input type="text" value="<%=trim(rs("fapiaobianhao"))%>" name="t_fapiaobianhao" id="t_fapiaobianhao<%=i%>" size="10" class="blue"></td>
<td><input type="text" value="<%=trim(rs("beizhu"))%>" name="t_beizhu" id="t_beizhu<%=i%>" size="10" class="blue"></td>
  </tr>

        rs.movenext
        loop

        rs.close
        set rs=nothing
        %>
<tr><td height="35" colspan="30" valign="bottom" align="right"><input class="btnStyle" onMouseOver="this.className='btnStyleMouseOver';" onMouseOut="this.className='btnStyle';" type="submit" name="Submit" value="保存全部修改内容"></td></tr>
</form>
******************************************************

saveaddtable.asp 内容如下


case "caigou"
xh=request("t_xuhao")
xh=split(xh,",")
dingdandanjia=trim(request("t_dingdandanjia"))
dingdandanjia=split(dingdandanjia,",")
junjia=trim(request("t_junjia"))
junjia=split(junjia,",")
danjia=trim(request("t_danjia"))
danjia=split(danjia,",")
shuliang=trim(request("t_shuliang"))
shuliang=split(shuliang,",")
fapiaojine=trim(request("t_fapiaojine"))
fapiaojine=split(fapiaojine,",")
xiaoji=trim(request("t_xiaoji"))
xiaoji=split(xiaoji,",")
gujiajine=trim(request("t_gujiajine"))
gujiajine=split(gujiajine,",")
fapiaoriqi=trim(request("t_fapiaoriqi"))
fapiaoriqi=split(fapiaoriqi,",")
fapiaobianhao=trim(request("t_fapiaobianhao"))
fapiaobianhao=split(fapiaobianhao,",")
beizhu=trim(request("t_beizhu"))
beizhu=split(beizhu,",")
response.Write(xh)
response.Write(ubound(xh))
for   i=0   to   ubound(xh)
sql = "update gys set"
sql=sql&" dingdandanjia="&dingdandanjia(i)&",junjia="&junjia(i)&",danjia="&danjia(i)&",shuliang="&shuliang(i)&",fapiaojine="&fapiaojine(i)&",fapiaoriqi='"&fapiaoriqi(i)&"',fapiaobianhao='"&fapiaobianhao(i)&"',beizhu='"&beizhu(i)&"' where xuhao="&trim(xh(i))

conn.execute(sql)
next
conn.Close
set conn=nothing
response.Write "<script language=javascript>alert('修改成功!');opener.location.reload();windows.close();</script>"
response.End()



提交的时候结果出现这样的错误-----------------------怎么回事?是不是有哪里错了?
Microsoft VBScript 编译器错误 错误 '800a03f6' 

缺少 'End' 

/iisHelp/common/500-100.asp,行242 

答复对象 错误 'ASP 0106 : 80020005' 

类型不匹配 

/juren/tp.adm/saveaddtable.asp,行0 

遇到未处理的数据类型。

case "caigou"  '是不是该删掉

读取数据利用表单元素的name属性
Request.Form("表单中相同NAME属性名")(i) //取得第I个具有NAME属性名的表单元素值


<form action="form2.asp" method="post">
First name:
<input type="text" name="XX" value="Donald" />
<br />
Last name:
<input type="text" name="XX" value="Duck" />
<br />
<input type="submit" value="Submit" />
</form>
<hr />

<p>来自上面的表单的信息:</p>
<%
      Response.Write("XX属性的数目:")
      Response.Write(Request.Form("XX").Count)

      Response.Write("First name=" & Request.Form("XX")(1))
      Response.Write("</p><p>") 
      Response.Write("Last name=" & Request.Form("XX")(2))
      Response.Write("</p>") 

%>

</body>
</html>

我已经解决了,谢谢大家的帮助。

在一个线程被杀死的时候,它对应的资源会被自动清理吗? 不要搞调查了,我们每个人奉献一道菜 jsp中写查询 有谁用过BEA公司的AquaLogic User Interaction(ALUI) 求solaris 8 下载地址 走字程序 泛型,可访问性不一致问题,请高手帮忙 oracle 联网连接问题 最近要做软件课程设计要用到数据库,我想用sql server,网上有好多版本,2000,2005,2008等等,不知道用哪个好,高手指点一下 合理安排你的代码时间 关于src的应用和href的引用问题 高手进来看看 listview的问题 蓝牙同步数据库! C# 为什么for循环到9就自动退出了? asp.net mobile开发连接数据库的问题 50分献上~~~~ 关于多文档窗体的问题? 每日一贴 数据库密码设置 大家的端午节怎么过的啊? 一个奇怪的封装应用! 关于String table的使用 欧洲杯开始了 我从数据库里取数据出来,然后用fwrite把数据写到一个文件中,为何文件中会变成乱码 求购 能赚分的蛋就是好蛋 放假两天,做了个无聊的程序,散分。。。。。 51job上找工作,发现同样的一个职位有时一连有四五个重复的信息,而且过了几页,又看到了,又重复了,这导致开始搜索的时候看到有多少多少职位,其实没那么多,好多都是重复的,这是怎么回事 谁能帮我看看这个异常是怎么回事? charindex的第一个参数 大虾 请快进!快~快~快~