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

时间:2014-10-11 04:04:39

标签: javascript

我很抱歉发布这个问题,但在谈到js时,我还是个新手。我创建了一个计算计费交易的简单页面,因此它只需将QuantityPrice乘以.25%即可。但这就是诀窍,如果总产品小于50,则Charge字段应默认为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
        });
    });

1 个答案:

答案 0 :(得分:1)

将总数放入变量并在将其放入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