Javascript计算问题


Javascript Calculation issue

我有这个函数,但我有问题。

function calc(id)
{
var price = document.getElementById("hidden-output-"+id);
var amount = document.getElementById("input-"+id);
if(price.value=="")
{
price.value = 0;
}
if(b.value=="")
{
amount.value = 1;
}
var total = amount.value * price.value;
document.getElementById("output-"+id).value=total;
}

它不起作用,我不知道为什么我是javascript的新手。

这是HTML和PHP

<?php


foreach($category->fetch_category() as $data){
    $id = $data->id;
    echo"<tr>";
    echo"<td>";
    echo"<center>";
    echo"<input type='"hidden'" value='"$data->id'" />";
    echo"<p><strong>".$data->cat_name."</strong></p>";
    echo"</center>";
    echo"</td>";
    echo"<td>";
    echo"<center>";

    echo"<select>";
    foreach($products->fetch_products($id) as $product)
    {
        $price = $product->price;
    echo"<option value = $product->id onclick='"UpdateRecord($product->id,$data->id)'">$product->p_name</option>";
    }
    echo"</select>";
    echo"</center>";
    echo"</td>";
    echo"<td>";
    echo"<center>";
    echo"<input class='"input-mini'" id=input-$data->id onkeyup='"calc($data->id)'" type='"text'" value='"1'"/>";
    echo"<input type='"hidden'" id='"$product->id'" value='"$product->quantity'" />";
    echo"</center>";
    echo"</td>";
    $i = 0;
    foreach($products->fetch_products($id) as $pricer){
    if ($i==1) break;    
    echo"<td>";
    echo"<center>";
    echo("<div id='"output-$data->id'" ><p>$pricer->price</p></div>");
    echo"<input type='"hidden'" id='"hidden-output-$data->id'" value='"$pricer->price'"/>";
    echo"</center>";
    echo"</td>";
    $i++;
    }
    echo"</tr>";
}
?>

我正在尝试计算每个字段的价格金额*价格,然后对所有价格字段求和,并在中显示结果

<td>Total : <input class="span1" type="text" id="total_calc" readonly="true" /></td>

我也尝试过这些变体:

function calc3(id) {
   var price = document.getElementById('hidden-output-'+id);
   var numberField = document.getElementById('input-'+id);
   numberField.onkeyup = numberField.onpaste = function() {
      if(this.value.length == 0) {
         document.getElementById('output-'+id).innerHTML = '';
         return;
      }
      var number = parseInt(this.value);
      if(isNaN(number)) return;
      document.getElementById('output-'+id).innerHTML = number * price;
   };
   numberField.onkeyup(); 
};
// This one always return NaN

这是一个项目:http://tinypic.com/view.php?pic=34473mp&s=5

if(b.value=="")
{
  amount.value = 1;
}

calc函数中的b.value是什么。这不是defined,这就是抛出错误和脚本不执行的原因。

在您的calc3函数中。您需要修改以下行

if(isNaN(number)) return;number = isNaN(number) ? 0 : number