想要获得本示例中的选项以便正常工作,但我需要一些帮助/提示。如果数量未选择,块将选择选项,如果数量已更改,则自动更新价格
如何在未选择数量时阻止选择所需的选项。
当数量发生变化时,是否有办法自动更新/实时更新所选纸张类型选项的价格/计算?
为什么在我的示例中,是否需要按下所需的纸张选项按钮才能重新计算小计的正确价格?如果我在小计价格没有变化时按下它。
您可以检查演示,你会明白我的意思。
演示:http://jsfiddle.net/c7b5f5t9/
我是新来的jQuery。先谢谢你。
HTML代码:
<h3>Select Quantity:</h3>
<select name="quantity-select" id="quantity" onchange="subtotal()">
<option data-price="0.00" value="0" selected>Select Quantity</option>
<option data-price="1.49" value="55" >55 Flyers for 81.95$/1.49$ each</option>
<option data-price="1.39" value="66" >66 Flyers for 91.74$/1.29$ each</option>
<option data-price="1.29" value="77" >77 Flyers for 99.33$/1.09$ each</option>
<option data-price="1.19" value="88" >88 Flyers for 104.72$/0.89$ each</option>
</select>
<h3>Select Paper:</h3>
<ul class="paper">
<li data-price="0.00" onclick="subtotal()">Standard Paper<br>(+0.00$)</li>
<li data-price="0.15" onclick="subtotal()">Double Thick Paper<br>(+0.15$/piece)</li>
<li data-price="0.25" onclick="subtotal()">Triple Thick Paper<br>(+0.25$/piece)</li>
</ul>
<h3>Extra Options:</h3>
<input name="box1" value="nolaminating" id="nolaminating" data-price="0.00" type="radio" onchange="subtotal()">No Laminating (+0.00$)<br>
<input name="box1" value="matte" id="matte" data-price="50.00" type="radio" onchange="subtotal()">Matte Laminating (+50.00$)<br>
<input name="box1" value="gloss" id="gloss" data-price="75.00" type="radio" onchange="subtotal()">Gloss Laminating (+75.00$)<br>
<div class="prices">
<h3>Flyers = $<span class="sum" id="flyers">0.00</span></h3>
<h3>Paper = $<span class="sum" id="papertype">0.00</span></h3>
<h3>Extra Options = $<span class="sum" id="extraoptions">0.00</span></h3>
</div>
<h3>Subtotal = $<span id="subtotal">0.00</span></h3>
Script代码:
var flyersprice = '0.00';
var paperoptions = '0.00';
var extraoptions = '0.00';
function subtotal(){
var price = $("#quantity option:selected").attr("data-price");
flyersprice = $("#quantity option:selected").val() * price;
$("#flyers").text(flyersprice.toFixed(2));
$(".paper li").click(function(){
var paperoptions = $(this).data("price") * $("#quantity option:selected").val();
$("#papertype").text(paperoptions.toFixed(2));
});
$('#papertype').change(subtotal);
$("input[type=radio]").change(function(){
var extraoptions = $(this).data("price");
$("#extraoptions").text(extraoptions);
});
$('input').change(subtotal);
var sum = 0;
$('.sum').each(function() {
sum += +$(this).text();
});
$("#subtotal").text(sum.toFixed(2));
}
你说什么可以根据数量值进行检查,将'input [type = radio]'设置为禁用。 '(input [type = radio])。prop('disabled',true);' – vaso123
@lolka_bolka - 将试图实现你的想法。谢谢! – andryesh