使用jquery计算动态字段

使用jquery计算动态字段,jquery,forms,Jquery,Forms,我正在“尝试”构建发票模板,并希望自动填写行总计、小计、增值税和总输入。到目前为止,我所尝试的一切似乎都没有产生任何效果,所以我想我会求助于我最好的教学资源来尝试解决这个问题 这是我试图填写的页面代码的一部分 <table class="appendo" width="100%" border="0" name="item" id="item"> <tr> <td><input type="text" name="descriptio

我正在“尝试”构建发票模板,并希望自动填写行总计、小计、增值税和总输入。到目前为止,我所尝试的一切似乎都没有产生任何效果,所以我想我会求助于我最好的教学资源来尝试解决这个问题

这是我试图填写的页面代码的一部分

<table class="appendo" width="100%" border="0" name="item" id="item">
    <tr>
      <td><input type="text" name="description[]" class="input3" tabindex="11"/></td>
      <td width="100"><input type="text" name="quantity[]" class="qtys" tabindex="12"/></td>
      <td width="100"><input type="text" name="cost[]" class="costs" tabindex="13"/></td>
      <td width="100"><input type="text" name="tot[]" class="tots" tabindex="14"/></td>
    </tr>
    </table>
    <input type="button" name="update" value="Update Totals" />
    <table width="200" border="0" name="totals" id="totals">
    <tr>
     <td width="100">Sub Total</td>
      <td width="100"><input name="sub" type="text" class="sub" tabindex="15" readonly="readonly"/></td>
      </tr>
      <tr>      
      <td width="100">VAT</td>
       <td width="100"><input name="vat" type="text" class="vat" tabindex="16" readonly="readonly"/></td> 
       </tr>
       <tr>   
      <td width="100">TOTAL</td>
      <td width="100"><input name="total" type="text" class="gtotal" tabindex="17" readonly="readonly"/></td>        
    </tr>
    </table>
如果你想看到它不起作用,我就戴着它


我希望你们能帮上忙。

正如我在一篇快速评论中所说的,您发布的代码的主要问题是没有任何东西调用
compute
,但让我们假设这是一个疏忽,您的标记中的按钮显然应该调用该方法

您遇到的下一个问题是所有的线条看起来像:

$(this).find('.tots').val=$sum;
val()
是一个方法,因此该行应为

$(this).find('.tots').val($sum);
下一个问题是最后两行

$(this).find('.sub').val=$sub;
$(this).find('.vat').val=$vat;
这两个字段不在要循环的
#item tr
的范围内。所以你永远也找不到他们。他们还面临着与上述相同的问题。相反,这些线路可能是

$('.sub').val($sub);
$('.vat').val($vat);

有一些其他清理你的代码,括号在错误的地方等,这是必要的,但我最终让你的代码工作。工作原理如下:

您不应该在所有变量前面加“$”前缀。“$”前缀最好只用于jQuery对象。首先要检查的是,没有任何东西的id是
total
,也没有任何东西调用
compute
,谢谢Jamie,这肯定为我指明了正确的方向。而且在fiddle的IE10下,它根本不起作用。(在打扰你们之前应该检查一下。)@SimonTrice-如果将jQuery版本放回1.9.1,在IE10中可以正常工作
$('.sub').val($sub);
$('.vat').val($vat);