gpt4 book ai didi

javascript - 如何使用加减按钮和输入框创建总计

转载 作者:行者123 更新时间:2023-12-03 00:25:20 26 4
gpt4 key购买 nike

我正在尝试制作一个价格计算器,其中 1 名员工 = 每月 21 美元。我希望能够通过两种方式设置员工数量。我想使用加号和减号来调整数量,并有一个输入框,可以在其中输入数量。调整其中任何一个都会立即更新总数。在我附加的代码中,您将看到在输入框中输入数字可以正常工作,但使用加号和减号不会调整总数。它更改了数字,但不执行数学运算。有人有什么想法吗?谢谢!

var $buttonPlus = $('.increase-btn');
var $buttonMin = $('.decrease-btn');
var $quantity = $('.quantity');
/*For plus and minus buttons*/
$buttonPlus.click(function(){
$quantity.val( parseInt($quantity.val()) + 1 );
});
$buttonMin.click(function(){
$quantity.val( parseInt($quantity.val()) - 1 );
});

/*For total*/
$(document).ready(function(){
$(".checkout").on("keyup", ".quantity", function(){
var price = +$(".price").data("price");
var quantity = +$(this).val();
$("#total").text("$" + price * quantity);
})
})
  .checkout {
height: 300px;
width: 400px;
margin: 20px auto;
border: 2px solid black;
text-align: center;
}
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<div class="checkout">
<h1 class="title">Checkout</h1>
<p class="price" data-price="21">$21 per month</p>
<p class="description">Quantity:</p>
<button type="button" class="decrease-btn">-</button>
<input type="text" class="quantity" value="1">
<button type="button" class="increase-btn">+</button>
<p class="total">Total: <span id="total">$21</span></p>
</div>

最佳答案

  • 将事件更改为“输入”,以便仅在实际值更改时触发
  • trigger('input') 添加到值更改的末尾,以便生成事件(逻辑值更改不会生成事件)。
  • 将第一个绑定(bind)移至文档中以确保安全(可选更改)。
  • Math.max() 放在减法周围,以便负数不会使值小于零。 (可选更改)

/*For total*/
$(document).ready(function() {
$(".checkout").on("input", ".quantity", function() {
var price = +$(".price").data("price");
var quantity = +$(this).val();
$("#total").text("$" + price * quantity);
})

var $buttonPlus = $('.increase-btn');
var $buttonMin = $('.decrease-btn');
var $quantity = $('.quantity');

/*For plus and minus buttons*/
$buttonPlus.click(function() {
$quantity.val(parseInt($quantity.val()) + 1).trigger('input');
});

$buttonMin.click(function() {
$quantity.val(Math.max(parseInt($quantity.val()) - 1, 0)).trigger('input');
});
})
.checkout {
height: 300px;
width: 400px;
margin: 20px auto;
border: 2px solid black;
text-align: center;
}
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<div class="checkout">
<h1 class="title">Checkout</h1>
<p class="price" data-price="21">$21 per month</p>
<p class="description">Quantity:</p>
<button type="button" class="decrease-btn">-</button>
<input type="text" class="quantity" value="1">
<button type="button" class="increase-btn">+</button>
<p class="total">Total: <span id="total">$21</span></p>
</div>

关于javascript - 如何使用加减按钮和输入框创建总计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54118928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com