2017-06-29 69 views
0

我試圖計算兩個變量的值。 Val1需要與Val2相乘。 Val1取決於其他用戶輸入的變化,並始終加載到'.value'中。第一次計算完成就沒問題了。然而,當頁面上的Val1發生變化時,它仍將使用之前的舊值,而不是檢查Val1的值(位於「.woocommerce-Price-amount」內)。它只是使用第一次加載到Val1中的數據。JQuery變量使用舊值更改

如何確保每次'input.qty'更改時jquery檢查Val1的值?

<input type="number" step="1" min="1" name="quantity" value="1" title="Aantal" class="input-text qty text" size="4" pattern="[0-9]*" inputmode="numeric"> 
<span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">€</span>93.20</span> 
<div class="multTotal"></div> 

    jQuery(document).ready(function($) { 

    $("input.qty").change(function() { 
     var val1 = $('.woocommerce-Price-amount').val(); 
     console.log(val1); 
     var val1g = val1.replace('<span class="woocommerce-Price-currencySymbol">€</span>', ''); 
     var val2 = $('input.qty').val(); 


     var val1n = parseInt(val1g); 
     var val2n = parseInt(val2); 

     var total = (val1n * 1) * (val2n * 1); 

     $('.multTotal').text(total); 
}); 


}); 
+0

'return input;'什麼是'input'?你所描述的行爲也沒有意義。你可以添加一個片段的問題,展示問題 –

+0

請發佈html也 –

回答

1

我認爲這是你需要的。對於簡單起見,我添加了一個新的類figures使計算變得簡單

$(document).ready(function() { 
 
    $("input.qty").change(function() { 
 
    debugger 
 
     var val1 = $('.figures').html(); 
 
     var val2 = $('input.qty').val(); 
 

 

 
     var val1n = parseFloat(val1); 
 
     var val2n = parseFloat(val2); 
 

 
     var total = (val1n * 1) * (val2n * 1); 
 

 
     $('.multTotal').text(total); 
 
}); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<span class="woocommerce-Price-amount amount"><span class="woocommerce-Price-currencySymbol">€</span><span class='figures'>93.20</span></span> 
 
<div class="multTotal"></div> 
 

 
<input type='text' class='qty' />

只需填寫一個號碼輸入值,然後單擊之外的空白區域看到的結果。

+0

問題是,'.value'是一個div而不是輸入字段,我不能改變這一點。 – elw

+0

然後您必須發佈您正在使用的HTML –

+0

更新後的描述 – elw