无法在javascript中进行乘法运算

时间:2014-03-25 10:05:50

标签: javascript php html

我创建了一个页面,其中两个文本框自动在另一个文本框中显示结果。但它不起作用。

Javascript for multiplication ......

<script  type="text/javascript">
$(document).ready(function() {

    $('#dataTable').on('keyup', '.price', calTotal)
                  .on('keyup', '.quantity', calTotal);

// find the value and calculate it

    function calTotal() {
        var $row = $(this).closest('tr'),
            price    = $row.find('.price').val(),
            quantity = $row.find('.quantity').val(),
            total    = price * quantity;

// change the value in total

        $row.find('.txt').val(total)
    }

});
</script>

html和php代码是......

    <table border="1" id="dataTable">

    <tr>
    <th> Id</th>
    <th>p</th>
    <th>B</th>
    <th>M</th>
    <th>D</th>
    <th>De</th>
    <th>Q</th>
    <th>T</th>
    </tr>
    <?php
    echo"<p></p>";
    echo"<p></p>";
    echo"<p></p>";
    echo"<p><h3> Details</h3></p>";
          $order = "SELECT * FROM abd ";
          $result = mysql_query($order);

         while($row = mysql_fetch_array($result))
         {
$p= $row['p'];
  $b=$row['b'];
  $m= $row['m'];
  $dp=$row['price'];
  $q=$row['quantity'];


        echo "<td><input type=text value=$id name=item[] readonly=readonly /></td>";
        echo "<td><input type=text id=p name=p[] value=$p ></td>";
        echo "<td><input type=text id=B name=b[] value=$b ></td>";
        echo "<td><input type=text id=M name=m[] value=$m ></td>";
        echo "<td><input type=text id=Q name=qua[] value=$qua ></td>";
        echo "<td><input type=text id=price name=price[] value=$price class=price ></td>";
        echo "<td><input type=text id=Quantity name=q value=$q class=quantity ></td>";
        echo "<td><input type=text id=txt name=txt  class=txt  > </td>";
    ?>
    </table>

当我输入dprice和数量时,它会自动显示总价格中的值。 但它不起作用。请帮助

3 个答案:

答案 0 :(得分:4)

尝试

total = parseInt(price) * parseInt(quantity);

这会将val()字符串转换为整数,以进行可能的数学运算。如果有浮点数,则使用parseFloat()而不是parseInt();

答案 1 :(得分:1)

首先将值转换为特定类型,然后进行乘法运算。 function calTotal() { var $row = $(this).closest('tr'), price = parseFloat($row.find('.price').val()); quantity = parseInt($row.find('.quantity').val()); total =price * quantity; console.log("Total is " + total); }

答案 2 :(得分:0)

首先,您必须使用number或使用parseInt()方法将值或输入转换为parseFloat()。像这样的东西会起作用

function calTotal() {
    var $row = $(this).closest('tr'),
        price    = $row.find('.price').val();
        quantity = $row.find('.quantity').val();
        total =parseInt(price) * parseInt(quantity);
        //total= parseFloat(price) * parseFloat(quantity); this can be used also
        console.log("Total is " + total);
}