2013-02-25 61 views
1

我一直在尝试使用用户在文本框中给出的数字来计算数字。我一直在尝试使用下面的代码。但是当我尝试测试它时,没有任何反应。有什么我失踪?有没有一种方法可以使印记可变全局?使用文本框计算数字

 <form> 
     <p>How many products do you want 
      ingraved?<input id="imprint_amount" name="imprint_amount" type="text"/> 
     </p> 
     <p>Names to be Imprinted(one per 
      line)<TEXTAREA COLS=25 NAME="imprint_text" ROWS=5 WRAP=HARD style="resize:none;"></textarea> 
     </p> 
     <input onclick="imprint_price" type="button" value="Finish"/> 
     <p id="total_cost"></p> 
    </form> 
    <script type="text/javascript"> 

     function imprint_price() { 
      var imprint_cost, 
       imprint_quality, 
       imprint_total; 
      imprint_cost = 10.99; 
      imprint_quantity = document.getElementById('imprint_amount'); 
      imprint_total = $imprint_cost * parseInt(imprint_quantity, 10); 
      document.getElementById('total_cost') = "$" + imprint_total; 

     } 

感谢, 崔西

+0

imprint_quantity应imprint_text的开始...... – disperse 2013-02-25 21:55:46

+0

你得到一个JavaScript错误? – 2013-02-25 21:55:56

回答

1

改变你的JavaScript来:

<script type="text/javascript"> 

    function imprint_price() { 
     var imprint_cost, 
      imprint_quantity, 
      imprint_total; 
     imprint_cost = 10.99; 
     imprint_quantity = document.getElementById('imprint_amount').value; 
     imprint_total = imprint_cost * parseInt(imprint_quantity, 10); 
     document.getElementById('total_cost').innerHTML = imprint_total; 
    } 
</script> 

工作的jsfiddle这里http://jsfiddle.net/Zt38S/2/

2

您将要使用input elementvalue财产您引用您的变量:

… parseInt(imprint_quantity.value, 10); 

对于任意的HTML元素,你需要使用textContent (或支持旧IE的innerText):

document.getElementById('total_cost').textContent = …; 

如你所做的那样分配给一个表达式应该引发一个相当准确的异常,请检查你的浏览器的错误控制台。

+0

我不相信这会起作用。 total_cost不是一个文本框,而是一个段落。编辑:nvm,您将'.value'更改为'.textContent' – Bot 2013-02-25 21:59:24

1

在这一行中,您需要设置元素的innerHTML

document.getElementById('total_cost').innerHTML = "$" + imprint_total; 

这基本上设置<p></p>中的文本是<p>$x.xx</p>

而且也是这条线应该是

imprint_quantity = document.getElementById('imprint_amount').value; 

它检索从文本框中的值。

此外,在定义变量时,您写下了“质量”。它应该是

imprint_quantity, 
+0

谢谢,我完全错过了质量/数量错字。 – CompyJones 2013-02-26 14:01:32

0

imprint_quantity =的document.getElementById( 'imprint_amount');

=

imprint_quantity =的document.getElementById( 'imprint_amount')值()。

让我知道是否修复它,这是一个常见的错误。