Jquery 如何减去输入值

Jquery 如何减去输入值,jquery,phpmyadmin,Jquery,Phpmyadmin,我有一个php页面,我可以从中减去两个值,其中一个是从mysql数据库获取的,另一个是由用户自己输入的。我想要的是,当在第二个输入字段中输入值时,输入的值应该从数据库调用的第一个输入值中减去,减去的值应该在另一个输入字段中可见。。。 代码是 <html> <head> <style> td {font-size:13px;} </style> <scrip

我有一个php页面,我可以从中减去两个值,其中一个是从mysql数据库获取的,另一个是由用户自己输入的。我想要的是,当在第二个输入字段中输入值时,输入的值应该从数据库调用的第一个输入值中减去,减去的值应该在另一个输入字段中可见。。。 代码是

  <html>
      <head>
        <style>
            td {font-size:13px;}
        </style>
        <script src="jquery-1.8.3.js"></script>
        <script type="text/javascript">
          $(function(){           
              $('input').each(function() {
                    $(this).keyup(function(){  
                         calculatedis($(this));
                      });
                });
           });

          function calculatedis(src) {
          var sub = 0;
          var sumtable = src.closest('.sumtable');
          sumtable.find('input').each(function() {
                var amt1 = $('input[name="amt1"]').val();
                var amt2 = $('input[name="amt2"]').val();
                sub = (amt1 - amt2)
              });
          sumtable.find(".netAmt").val(sub.toFixed(2));
          }   
         </script> 
      </head>
      <body>
         <form class="inward">
         <?php
            include("dbconnection.php");
            $sql = "SELECT id,price FROM table1 WHERE id='3' ORDER BY id";
            $res = mysql_query($sql) or die(mysql_error());
            echo "<table border='1' align='center' cellspacing='0' cellpadding='3' class='sumtable'>";

             echo "<tr bgcolor='#CCCCCC' height='30'>";
            echo "<td>Price</td>";
            echo "<td>Discounted Amt</td>";
            echo "<td>Net Amt</td>";
             echo "</tr>";
            while($row2=mysql_fetch_array($sql2))
            {
            //change row color alternately  
            $i++;
            $color = ($i%2) ? "#f8f8ff" : "#f0fff0";
            echo "<tr bgcolor=" . $color . " onmouseover='ChangeBackgroundColor(this)' onmouseout='RestoreBackgroundColor(this)'>
                $price = $row2["price"];
            if (strlen(trim($price)) == 0)
            {
            echo "<td>&nbsp;</td>";
            }
            else
            {
            echo "<td valign='top'><input name='amt1' value=" . $price . " size='5'/></td>";
            }
            echo "<td valign='top' ><input name='amt2' size='5'/></td>";
            echo "<td valign='top'><input  name='netamt' class='netAmt' size='5'/></td>";
            echo "</tr>";
            }

            echo "</table>";
            echo "<br>";
            echo "<tr><td></td></tr>";
            echo "<center>";
            echo "<input type='submit' name='submit' value='Save' style='cursor:pointer;cursor:hand;'>&nbsp;&nbsp;&nbsp;&nbsp;";
            echo "<input type='reset' name='clear' value='Clear' style='cursor:pointer;cursor:hand;'>";
            echo "</center>";

         ?>
   </form>
 </body>
</html>

td{font size:13px;}
$(函数(){
$('input')。每个(函数(){
$(this).keyup(函数(){
计算单位($(本));
});
});
});
函数计算器(src){
var-sub=0;
var sumtable=src.closest('.sumtable');
sumtable.find('input')。每个(函数(){
var amt1=$('input[name=“amt1”]”)。val();
var amt2=$('input[name=“amt2”]')。val();
sub=(amt1-amt2)
});
sumtable.find(“.netAmt”).val(第2部分);
}   

您正在循环执行每个
输入
,但随后在sub中执行一个计算,每次都会被丢弃。尝试在每个
tr
之间循环

此外,还需要通过调用parseInt()来包装
$('input[name=…]').val()
(如果为非整数,则为等效项)。代码就是这样,它以字符串的形式检索它们的值。尝试:

sumtable.find('tr').each(function() {
    var amt1 = parseInt($(this).find('input[name="amt1"]').val());
    var amt2 = parseInt($(this).find('input[name="amt2"]').val());
    sub = (amt1 - amt2)
    $(this).find('.netAmt').val(sub);
});

@Andrian thanx fr ur kind help,我已经尝试过了,但是NaN在netAmt输入中显示了减去的值应该出现的位置…两个文本框中是否都添加了值?南不是一个数字;空字符串上的parseInt()将返回此值,将NaN添加到另一个数字也将返回此值;在$(this.find('.netAmt').val(sub)中,这可能是我得到NaN的原因,但感谢你的好友bcoz,你的tr循环建议我的脚本运行完美。。。。。。