计算多个项目的价格
Calculating price of multiple items
目前我有一个HTML表单,允许用户从下拉列表中选择一个项目,它会将价格输入到输入中,甚至在数量发生变化时更改价格。
如何使其在选择标签中添加"多个"(使其成为<select id="price_input" multiple>
)时,它将计算两个或多个项目的价格,如果选择了两个或更多项目,则禁用数量下拉列表?
这是我能够想出的,但它没有上面描述的我需要的补充:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$('#price_input').on('change', function() {
$selection = $(this).find(':selected');
$('#opt_price').val($selection.data('price'));
$('#quantity_input').on('change', function() {
$('#opt_price').val($selection.data('price') * $(this).val());
});
});
});
</script>
<select id="price_input">
<option value="Coffee" data-price="3.00">Coffee</option>
<option value="Chips" data-price="0.75">Chips</option>
<option value="Soda" data-price="2.50">Soda</option>
</select>
<select id="quantity_input">
<option value="1" >1</option>
<option value="2" >2</option>
<option value="3" >3</option>
</select>
<div>Option Price <input type="text" id="opt_price"/></div>
使用以下内容可以使其适用于多个产品。
$(document).ready(function() {
$('#price_input').on('change', function() {
$('#opt_price').val(valueFUnction());
});
$('#quantity_input').on('change', function() {
$('#opt_price').val(valueFUnction());
});
});
function valueFUnction(quan) {
var $selection = $('#price_input').find(':selected');
var quantity = $('#quantity_input').val();
var total = 0;
$selection.each(function() {
total += $(this).data('price') * quantity;
})
return total;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="price_input" multiple>
<option value="Coffee" data-price="3.00">Coffee</option>
<option value="Chips" data-price="0.75">Chips</option>
<option value="Soda" data-price="2.50">Soda</option>
</select>
<select id="quantity_input">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<div>Option Price
<input type="text" id="opt_price" />
</div>
您可以检查是否使用$(":selected", this).length > 1)
选择了多个选项,然后更改$('#quantity_input')
的disabled
$('select').on('change', function() {
if ($(":selected", this).length > 1) {
$('#quantity_input').prop('disabled', true);
} else {
$('#quantity_input').prop('disabled', false)
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="price_input" multiple>
<option value="Coffee" data-price="3.00">Coffee</option>
<option value="Chips" data-price="0.75">Chips</option>
<option value="Soda" data-price="2.50">Soda</option>
</select>
<select id="quantity_input">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<div>Option Price
<input type="text" id="opt_price" />
</div>
尝试以下优化版本:
$('#price_input').on('change', function() {
var items = $(this).val() || [], totalPrice = 0.00;
$('#quantity_input').attr('disabled', items.length > 1);
var selection = $(':selected', this);
if (selection.length) {
$.each(selection, function(i, v){
totalPrice += parseFloat($(v).data('price'));
});
}
$('#opt_price').val(totalPrice);
});
$('#quantity_input').on('change', function() {
$('#opt_price').val($('#price_input :selected').data('price') * $(this).val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<select id="price_input" multiple>
<option value="Coffee" data-price="3.00">Coffee</option>
<option value="Chips" data-price="0.75">Chips</option>
<option value="Soda" data-price="2.50">Soda</option>
</select>
<select id="quantity_input">
<option value="1" >1</option>
<option value="2" >2</option>
<option value="3" >3</option>
</select>
<div>Option Price <input type="text" id="opt_price"/></div>
相关文章:
- 计算多个项目的价格
- JavaScript计算项目的总价
- 删除项目时的JavaScript计算
- Angularjs - 复选框 - 计算多个选定/未选定项目
- (角度.js)如何通过过滤器计算数组中有多少项目
- 正在分析网站的多个页面并计算项目总数
- 如何计算同一页面中项目的成本
- 使用Javascript计算特定项目的实例
- 循环 HTML 表并将相同的项目及其计算的金额添加到另一个表中
- 如何计算父路由模型的项目以在嵌套路由中使用它
- 计算数组中的重复项目
- 计算要填充 N 个项目的最大可用行和列数
- 在提交表格时计算所有动态项目的总数,包括复制的项目
- 计算输入到数组中的项目
- jQuery计算项目在可滚动窗口中的位置并滚动到它
- 尝试在考虑所选Javascript数量的情况下计算项目的总价
- 如何使用Protractor计算不可见项目
- JQuery:预先计算插入项目的高度
- 如何计算新项目在转换容器中的位置
- 如何计算项目中JS、CSS、LESS、HTML文件的代码行总数