如下图。
表格的数据,根据公式计算来的。当改变其它一个值时,其它关联的数据跟着变化
比如:输入未税成本时,以可以得含税成本的值,含税成本=未税成本*税率
输入:未税单价可以得到含税单价和K值,K值=未税单价/未税成本,同样,输入含税的单价,可以得到未税的单价。其它类似,请问,怎么用JS来实现呢?我的程序是用ASP做的,并且每列的文本框的ID相同的。谢谢

解决方案 »

  1.   

    每列的文本框的ID相同,ID怎么可能是相同呢?有了公式,这个实现起来就很简单了呀
      

  2.   

     用 document.getElementsByTagName("input")  获取文本框不同列的文本框,设置不同属性,用来标识 文本框根据标识 添加textchange 事件textchange 事件
     根据当前文本框的值和标识 设置需要修改的文本框的值修改的文本框 可以根据 标识 用 父节点(td) 的上一个(下一个)  的子节点来获取
      

  3.   

    不好意思,我JS基础太差,不是很明白,能否做个示例说明。<table width="100%" border="1" cellpadding="3" cellspacing="1">
      <tr>
        <td>未税成本</td>
        <td>含税成本</td>
        <td>未税单价</td>
        <td>K值</td>
        <td>含税单价</td>
        <td>税率</td>
        <td>金额</td>
      </tr>
      <tr>
        <td><input name="a1" type="text" id="a1" size="8" /></td>
        <td><input name="a2" type="text" id="a2" size="8" /></td>
        <td><input name="a3" type="text" id="a3" size="8" /></td>
        <td><input name="a4" type="text" id="a4" size="8" /></td>
        <td><input name="a5" type="text" id="a5" size="8" /></td>
        <td><input name="a6" type="text" id="a6" value="17%" size="8" /></td>
        <td><input name="a7" type="text" id="a7" size="8" /></td>
      </tr>
      <tr>
        <td><input name="a1" type="text" id="a1" size="8" /></td>
        <td><input name="a2" type="text" id="a2" size="8" /></td>
        <td><input name="a3" type="text" id="a3" size="8" /></td>
        <td><input name="a4" type="text" id="a4" size="8" /></td>
        <td><input name="a5" type="text" id="a5" size="8" /></td>
        <td><input name="a6" type="text" id="a6" value="17%" size="8" /></td>
        <td><input name="a7" type="text" id="a7" size="8" /></td>
      </tr>
    </table>
      

  4.   

    这种以前做个,做进销存的表单时做过,简单的方法就是先检查某一行,<tr onclick="aaa=this;">原后再通过getElementsByTagName("input").length来循环检查getElementsByTagName("input")[i].name==含税成本,如果等于,执行公式,写入value,大概是这样的,麻烦是麻烦点,但好歹是解决了
      

  5.   

    字段ID不要设一样的值,你可以用程序控制的
    <table width="100%" border="1" cellpadding="3" cellspacing="1">
      <tr>
      <td>未税成本</td>
      <td>含税成本</td>
      <td>未税单价</td>
      <td>K值</td>
      <td>含税单价</td>
      <td>税率</td>
      <td>金额</td>
      </tr>
      <tr>
      <td><input name="a1" type="text" id="a1" size="8" onchange="kk(this)"/></td>
      <td><input name="b1" type="text" id="b1" size="8" /></td>
      <td><input name="c1" type="text" id="c1" size="8" /></td>
      <td><input name="d1" type="text" id="d1" size="8" /></td>
      <td><input name="e1" type="text" id="e1" size="8" /></td>
      <td><input name="f1" type="text" id="f1" value="17%" size="8" /></td>
      <td><input name="g1" type="text" id="g1" size="8" /></td>
      </tr>
      <tr>
      <td><input name="a2" type="text" id="a2" size="8" onchange="kk(this)" /></td>
      <td><input name="b2" type="text" id="b2" size="8" /></td>
      <td><input name="c2" type="text" id="c2" size="8" /></td>
      <td><input name="d2" type="text" id="d2" size="8" /></td>
      <td><input name="e2" type="text" id="e2" size="8" /></td>
      <td><input name="f2" type="text" id="f2" value="17%" size="8" /></td>
      <td><input name="g2" type="text" id="g2" size="8" /></td>
      </tr>
    </table>
      

  6.   

    function kk(obj){
    var name = obj.name;
    var x = name.substring(1,name.length); var y = "b"+x;
    var z = "f"+x
    var val = obj.value;
    var vaz = "0."+document.getElementById(z).value.substring(0,2);

    document.getElementById(y).value=eval(val) + eval(val*vaz);}这样就可以解决了,id是一样的,这就是给自己添麻烦啊
      

  7.   

    不好意思,这几天一至在外面的忙。不过,问题还是解决了,这里感谢我的QQ群里的一位朋友。现把参考代码贴出,ID用程序控制不一样。
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title></head><body>
    <input type="text" id="a1" onchange="one(1)" />
    <input type="text" id="b1" onchange="two(1)"/>
    <input type="text" id="c1" onchange="three(1)" />
    <br />
    <input type="text" id="a2" onchange="one(2)" />
    <input type="text" id="b2" onchange="two(2)"/>
    <input type="text" id="c2" onchange="three(2)" />
    <script>
    function $(id){return document.getElementById(id);}
    function one(i){
    $("b"+i).value=$("a"+i).value*5;
    $("c"+i).value=$("a"+i).value*3;
    }
    function two(i){
    $("a"+i).value=$("b"+i).value*5;
    $("c"+i).value=$("b"+i).value*3;
    }
    function three(i){
    $("a"+i).value=$("c"+i).value*5;
    $("b"+i).value=$("c"+i).value*3;
    }
    </script></body>
    </html>