Javascript:TypeError:variable.value未定义

时间:2016-04-04 08:01:55

标签: javascript

任何人都可以告诉我它有什么问题。感谢

Firebug显示错误表示“TypeError:price is undefined”。 howmany = parseInt(price.value); }

代码的目的:

我使用javascript来计算联系表单的总价。 价格和数量来自表格。

HTML部分:

<form id="contact-form" action="/email_form.php" method="post">
<table>
<tr ><td>   CAKE A  </td>
<td><input name="p_A01" id="p_A01" value="420" readonly="readonly"  type="tel" /></td>  
<td><input name="q_A01" id="q_A01"  type="tel" onchange="calculateTotal(); /> </td></tr>

<tr ><td>   CAKE B  </td>
<td><input name="p_A02" id="p_A02" value="420" readonly="readonly"  type="tel" /></td>  
<td><input name="q_A02" id="q_A02"  type="tel" onchange="calculateTotal(); /> </td></tr>

.
.
.
  etc



</table>
<input name="submit" type="submit"  />
</form>

Javascript部分: GetQuantity()用于从Qty字段中获取值。例如q_A01 ..

GetPrice()用于获取只读值Price字段。例如p_A01 ..

calculateTotal()用于计算总价并返回字段ID“Total”。

function GetQuantity(e) {
var theForm = document.forms["contact-form"];
var quantity = theForm.elements[e];
var howmany =0;
if(quantity.value!=0) {
howmany = parseInt(quantity.value); }
return howmany;
}
function GetPrice(e) {
    var theForm = document.forms["contact-form"];
    var price = theForm.elements[e];
    var howmany =0;
    if(price.value!=0) {
    howmany = parseInt(price.value); }
    return howmany;
    }

function calculateTotal()
{
    var cakePrice =
GetPrice(p_A01)*GetQuantity(q_A01)+
GetPrice(p_A02)*GetQuantity(q_A02)+
GetPrice(p_A03)*GetQuantity(q_A03)+
GetPrice(p_F11)*GetQuantity(q_F11);

  var Totalordered = document.getElementById ("Total");
         Totalordered.value = cakePrice;


}

1 个答案:

答案 0 :(得分:0)

GetPrice(p_A01)*GetQuantity(q_A01)+
GetPrice(p_A02)*GetQuantity(q_A02)+
GetPrice(p_A03)*GetQuantity(q_A03)+
GetPrice(p_F11)*GetQuantity(q_F11);

应该是

GetPrice("p_A01")*GetQuantity("q_A01")+
GetPrice("p_A02")*GetQuantity("q_A02")+
GetPrice("p_A03")*GetQuantity("q_A03")+
GetPrice("p_F11")*GetQuantity("q_F11");

因为ID是字符串。