如何实现奇数数量对应总价(Qty/3)的向上取整显示?
解决方案
要实现「输入数量为奇数时,将数量除以3的结果向上取整后显示总价」的需求,你可以通过判断奇偶性结合向上取整函数修改现有代码,具体调整如下:
修改后的JavaScript代码
$(document).ready(function() { $('.variable-field').on("input", function() { var $row = $(this).closest('tr'); // 将输入值转为数字,避免字符串运算问题 var qty = Number($row.find('.quantity').val()) || 0; let total; // 判断数量是否为奇数(排除0的特殊情况) if (qty % 2 !== 0 && qty !== 0) { // 奇数时对计算结果向上取整 total = Math.ceil(qty / 3); } else { // 偶数或0时正常计算 total = qty / 3; } $row.find('.totalcostprice').val(total); }); });
对应HTML代码(无需改动,仅作展示)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table class="table table-striped table-bordered proposal-table" id="proposal-table"> <thead> <tr> <th>Quantity</th> <th>Total</th> </tr> </thead> <tbody> <tr> <td><input type="number" class="form-control variable-field quantity" name="Quantity" /></td> <td><input type="number" class="form-control width-80 totalcostprice" name="TotalCostPrice" readonly /></td> </tr> </tbody> </table>
关键修改说明
- 类型转换:把
val()获取的字符串转为数字类型,避免出现非预期的运算结果 - 奇偶判断:用
qty % 2 !== 0识别奇数,同时排除0的特殊情况(0是偶数,无需取整) - 向上取整:使用
Math.ceil()函数处理奇数的计算结果,比如输入5(奇数)时,5/3≈1.666会被取整为2;输入3(奇数)时,3/3=1取整后保持1
内容的提问来源于stack exchange,提问作者bastiag5
相关产品推荐
相关产品推荐

