我試圖根據選定的日期和時間更新機票價格,其中某些日期會打折,而其他日期則不打折。折扣價格的計算沒有顯示爲jQuery中的數字?
至於門票的定價而言,我一直在使用HTML來存儲和處理的值,就像這樣:
<tr>
<td>Adult</td>
<td>
<select class="qty" name="SA">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
</td>
<td>
<input type="text" value="18.00" class="price" readonly>
</td>
<td align="center">
<span class="amount">$0.00</span>
</td>
</tr>
它是如何工作
- 數量
value
是根據用戶選擇的下拉選項來選擇的。 量值然後由價格,這被存儲在
value
在<input>
HTML相乘,在這種情況下,它18.的
<span>
然後用結果更新,示出了子總價格。- 注:我的
<tr>
多個多個部分相同的那些用於計算的這一個
JS/jquery的
//price of seating
function calculatePrice() {
var time = $("#whichSession").val(); // sets time to value
var day = $("#whichDay").val(); // sets day to value
var sum = 0;
$('#bookingTable > tbody > tr').each(function() {
var qty = $(this).find('option:selected').val();
var price = $(this).find('.price').val();
var amount = (qty * price)
sum += amount;
$(this).find('.amount').text('$' + amount.toFixed(2));
});
//just update the total to sum
$('#totalprice').val(sum.toFixed(2));
}
其他用戶已建議我創建一個新的功能即實時更新價格的value
,以便它可以獲得適當的折扣價值。用於計算折扣價格
// calls get price function on day change
$('.qty').change(function() {
getPrices();
});
// sets value of price based on day and time
function getPrices (day, time) {
if (day=='mon' || day == 'tue' || time=='1pm') {
prices = {SA:12, SP:10, SC:8, FA:25, FC:20, B1:20, B2:20, B3:20}
} else {
prices = {SA:18, SP:15, SC:12, FA:30, FC:25, B1:30, B2:30, B3:30}
}
return prices;
}
我的問題
JS/jQuery的
當我使用alert
顯示什麼珍惜它實際上改變它,這似乎是正確的。但是,它在span
中打印爲'$ NaN',這意味着顯示每張票的小計金額。
我已經創建了一個小提琴所以你們可以看到整個事情是如何工作的。請原諒,如果任何代碼是狡猾的。它實際上在我的網站上時效果更好。
對不起,很長的文章。我只是想確保我對我的問題非常清楚。請讓我知道如果有什麼不清楚,我會盡力澄清。
在此先感謝!
它似乎沒有工作。我需要做的是根據getPrices函數中的條件獲取每個價格的值。 – antonlab
請檢查此[小提琴](http://jsfiddle.net/8xrj7jof/5/)。你的意思是更新'$('#whichDay')。change(..)'顯示的價格嗎? – MaxZoom
Nono。更新''的值。因爲我原來的價格計算是'數量*價格','價格'是以這個數值爲基礎的。如果我可以得到更新的價值,那麼它會顯示正確的價格(您更新的小提琴計算正確的價格,但沒有顯示它)並計算它正確。 – antonlab