我在页面上有一个基本的价格计算器,现在需要添加一个(非常基本的和非安全的)"促销代码"字段来打折总额。
我的HTML字段很重要:
<input type="text" id="Amount" /> <!-- the price amount field that gets updated via JS -->
<input type="text" id="promocode" /> <!-- promo code field -->
<input type="button" id="promoupdate" value="Update Price" /> <!-- button to click to update the Amount field -->
<select id="CAT_Custom_358914"> <!-- number of *additional* attendees to be paid for -->
<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>
</select>
请注意,始终有一个默认与会者,因此从选择字段中选择任意数字只会将数字添加到1.如果我选择&#34; 3&#34;从选择字段来看,这意味着我有4个与会者。
现在,我的金额计算器目前为每位与会者添加了注册选项。效果很好:
$('.calculator').change(function() {
var total = 0;
$('.calculator option:selected').each(function() {
var m = /\[\$(\d+\.\d+)\]/.exec(this.value);
if(m !== null) {
total += +m[1];
}
});
var decimalPart = (total - Math.floor(total)) * 100;
$('#Amount').val(Math.floor(total) + '.' + (decimalPart < 10 ? '0' : '') + decimalPart);
});
你真的不需要知道每个&#34; .calculator&#34;字段看起来像,但万一你好奇:
<select name="CAT_Custom_359359" id="CAT_Custom_359359" class="cat_dropdown calculator">
<option value=" ">-- Please select --</option>
<option value="Friday and Saturday [$225.00] ($250 after Feb 17)">Friday and Saturday [$225.00] ($250 after Feb 17)</option>
<option value="Friday Only [$125.00] ($135 after Feb 17)">Friday Only [$125.00] ($135 after Feb 17)</option>
<option value="Saturday Only [$125.00] ($135 after Feb 17)">Saturday Only [$125.00] ($135 after Feb 17)</option>
</select>
我需要做的是:
请注意,用户可以在提交促销代码后对#CAT_Custom_358914进行更改,因此只要发生这种情况,促销代码折扣就会更新。我只是一个jQuery hack而且我目前的进展并不能真正解决对#CAT_Custom_358914的更改...
$("#promoupdate").click(function(){
if($("#promocode").value()=="PC123") {
[modify #Amount]
};
elseif($("#promocode").value()=="PC321") {
[modify #Amount]
};
else($("#promocode").value()=="[anything else]") {
alert("That's not a valid promo code");
};
});
答案 0 :(得分:1)
这对你有用吗?
JS
var promocode;
var numberatt;
var pricing;
var total;
var finalprice;
$('#update').click(function(){
promocode = $('#promocode').val();
numberatt = $('#numberatt').val();
pricing = $('#pricing').val();
finalprice = numberatt * pricing;
if ( (promocode == 'PC321') || (promocode == 'PC123') )
{
finalprice = +finalprice * 0.9;
}
else if ( promocode.length < 1)
{
finalprice = +finalprice * 1;
}
else
{
alert("Invalid Promo Code");
finalprice = 0;
}
$('.totaldiv').html( '$' + finalprice );
});