js-如果不满足目标值,如何默认为特定值

js - how to default to a specific value if target value does not met

本文关键字:默认 何默认 如果不 如果 不满足 目标值 js-      更新时间:2023-09-26

很抱歉发布这个问题,但我对js有点新手。我已经创建了一个简单的页面来计算收费事务,所以它将简单地将QuantityPrice乘以.25%。但这里有一个技巧,如果总乘积小于50Charge字段应该默认为50,这就是我有点迷失的地方,

这是我的代码:

<tr>
    <td width="144">Quantity:</td>
    <td width="63"><input type="text" name="quantity" id="quantity" size="8"/></td>
</tr>
<tr>
    <td>Price:</td>
    <td><input type="text" name="price" id="price" size="8"/></td>
</tr>
  <tr>
    <td colspan="4"><strong>Charges:</strong></td>
    </tr>
<tr>
    <td>Charge:</td>
    <td><input style="color:#F00" type="text" name="charge" id="charge" size="8" readonly="readonly" /></td>
    <td colspan="2">Quantity x Price x .25% OR 20 whichever is higher</td>
</tr>

这是我设法得到的js

    $(function () {
        $("#quantity, #price").keyup(function () {
            var q = parseFloat($("#quantity").val()); // Quantity
            var p = parseFloat($("#price").val()); // Price
            if (isNaN(q) || isNaN(p) || q<=0 || p <= 0) {
                $("#charge").val('');
                return false;
            }
            $("#charge").val((q * p * 0.0025).toFixed(3)); // Charge
        });
    });

将总数放入变量中,并在将其放入DOM:之前对其进行测试

$(function () {
    $("#quantity, #price").keyup(function () {
        var q = parseFloat($("#quantity").val()); // Quantity
        var p = parseFloat($("#price").val()); // Price
        if (isNaN(q) || isNaN(p) || q<=0 || p <= 0) {
            $("#charge").val('');
            return false;
        }
        var total = q * p * 0.0025;
        if (total < 50) {
            total = 50;
        }
        $("#charge").val(total.toFixed(3)); // Charge
    });
});

另一种方法是使用Math.max():

$("#charge").val(Math.max(50, q * p * 0.0025).toFixed(3)); // Charge