2015-06-23 61 views
0

我想使用輸入文本值計算產品的總價格。如何計算jquery中的兩個輸入文本值

的HTML代碼和JavaScript代碼段如下:

$('input').keyup(function(){ // run anytime the value changes 
 

 
var firstValue = parseFloat($('#value1').val()) || 0; // get value of field 
 
var secondValue = parseFloat($('#value2').val()) || 0; // convert it to a float 
 

 

 

 
var subtotal1 = firstValue * 10; 
 
var subtotal2 = secondValue * 15; 
 

 
    
 
$('#subtotal1').html(subtotal1); // output it 
 
$('#subtotal2').html(subtotal2); // output it 
 
$('#finaltotal').html(subtotal1 + subtotal2); // output it 
 
});
<!-- Product 1 --> 
 
\t \t <div> \t \t \t \t \t \t 
 
\t \t \t <label>Product 1</label> 
 
\t \t \t <div><input type="text" id="value1"><?php echo ' x 10USD = ';?><span id="subtotal1"></span>USD</div> 
 

 
<!-- Product 2 --> 
 
\t \t <div> \t \t \t \t \t \t 
 
\t \t \t <label>Product 2</label> 
 
\t \t \t <div><input type="text" id="value2"><?php echo ' x 15USD = ';?><span id="subtotal2"></span>USD</div> 
 
\t 
 
\t <!-- Total --> 
 
\t \t <div> \t \t \t \t \t \t 
 
\t \t \t <label>Total:</label> 
 
\t \t \t <div><span id="#finaltotal"></span>USD</div> 
 
\t </div>

最終的結果應該是這樣的: [1]×10USD = 10USD [2]× 15USD = 30USD 總計:40USD

但是,上述代碼無法正常工作。 有沒有好的方法來完成它?

感謝您的幫助。

+0

你必須詳細說明「不能正常工作」。否則,我們無法知道發生了什麼。 – suvartheec

+1

從#finaltotal ID中刪除「#」 – Robin

+0

@survartheec。謝謝。下次我會小心的。 – Peter

回答

0

你有一個錯字。 <span id="#finaltotal"></span>應該<span id="finaltotal"></span>

更新的摘要:從id屬性

$('input').keyup(function() { // run anytime the value changes 
 
    var firstValue = parseFloat($('#value1').val()) || 0; // get value of field 
 
    var secondValue = parseFloat($('#value2').val()) || 0; // convert it to a float 
 
    var subtotal1 = firstValue * 10; 
 
    var subtotal2 = secondValue * 15; 
 
    $('#subtotal1').html(subtotal1); // output it 
 
    $('#subtotal2').html(subtotal2); // output it 
 
    var finalAnswer = (subtotal1 + subtotal2).toString(); 
 
    $('#finaltotal').html(finalAnswer.replace(/\B(?=(\d{3})+\b)/g, ",")); // output it 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<!-- Product 1 --> 
 
<div> 
 
    <label>Product 1</label> 
 
    <div> 
 
    <input type="text" id="value1"> 
 
    <?php echo ' x 10USD = ';?><span id="subtotal1"></span>USD</div> 
 

 
    <!-- Product 2 --> 
 
    <div> 
 
    <label>Product 2</label> 
 
    <div> 
 
     <input type="text" id="value2"> 
 
     <?php echo ' x 15USD = ';?><span id="subtotal2"></span>USD</div> 
 

 
    <!-- Total --> 
 
    <div> 
 
     <label>Total:</label> 
 
     <div><span id="finaltotal"></span>USD</div> 
 
    </div>

+0

非常感謝。我應該更加小心...... – Peter

+0

非常感謝。我還有一個問題:如果總價值超過1000美元,我可以插入千位分隔符(逗號)嗎? – Peter

+0

你可以使用正則表達式來做到這一點。 '「10000000」.replace(/ \ B(?=(\ d {3})+ \ b)/ g,「,」)'。我用一個例子更新了我的代碼片段。 –

1

刪除亂碼,id="finaltotal"

<label>Total:</label> 
<div><span id="#finaltotal"></span>USD</div> 

       ^-----------remove----------- 

它的工作原理!

http://jsfiddle.net/4edbv96r/

+0

非常感謝! – Peter