函数不会扣除第一个值

时间:2013-07-08 10:30:15

标签: javascript jquery

我使用以下函数从输入中获取值并从固定值中扣除金额。当用户点击屏幕数字键盘时会发生这种情况。

function totalFocusOut(elem){
    var subTotal = $(elem).parent().parent().find('.total-due').val();
    var paidAmount = $(elem).val();
    var balanceAmount = parseFloat(subTotal) - parseFloat(paidAmount);
    $('.final-value').html(balanceAmount.toFixed(2));
}

通过以下功能触发该功能

$('.amount').blur(function(){
    if($(this).val() != ""){
        totalFocusOut($(this));
    }
});

调用该函数时,它不会减少用户输入的第一个值!输入第二个值时bt开始减小第一个值!

例如,用户首先点击数字6按钮。然后是7号按钮。 从理论上讲,该函数应首先从数量减少6,然后从数量减少67。金额是固定的,我将更新的金额保存在另一个变量中。如何使函数首先减小第一个值,然后减小第二个值。

谢谢。

这是HTML代码

<div id="settle-cash">
    <div id="settlement-cash">
        <div id="input-div">
            <label for="table-number">Table No</label>
            <input class="table-number" placeholder="Table Number" type="text"></text>
        </div>
        <div id="input-div">
            <label for="room">Room No</label>
            <input class="room" placeholder="Room Number" type="text"></text>
        </div>
        <div id="input-div">
            <label for="room">No of Guests</label>
            <input class="num-of-guests" placeholder="Number of Guests" type="text"></text>
        </div>
        <div id="input-div">
            <label for="total"">Total</label>
            <input class="total" placeholder="Total" type="text"></text>
        </div>
        <span style="padding-left: 16px">Discount Type:</span>
            <input type="radio" id="dis-percentage" name="discount-type" checked="checked" value="percentage">Percentage</input>
            <input type="radio" id="dis-amount" name="discount-type" value="amount">Amount</input>
        <div id="input-div">
            <label for="discount">Discount</label>
            <input class="discount" placeholder="00.00" type="text"></text>
        </div>
        <div id="input-div">
            <label for="total-due">Total Due</label>
            <input class="total-due" placeholder="Total Due" value="Total Due" type="text"></text>
        </div>
        <div class="balance-section">
            <span class="balance">Balance</span>
            <span class="final-value"></span>
        </div>
    </div>
    <div id="amount">
        <input class="amount" placeholder="Enter Amount" type="text"></text>

        <!-- Onscreen Number Pad -->
        <div id="number-pad">
            <div class="metal linear num-button">
                <span>1</span>
            </div>
            <div class="metal linear num-button">
                <span>2</span>
            </div>
            <div class="metal linear num-button">
                <span>3</span>
            </div>
            <div class="metal linear num-button">
                <span>4</span>
            </div>
            <div class="metal linear num-button">
                <span>5</span>
            </div>
            <div class="metal linear num-button">
                <span>6</span>
            </div>
            <div class="metal linear num-button">
                <span>7</span>
            </div>
            <div class="metal linear num-button">
                <span>8</span>
            </div>
            <div class="metal linear num-button">
                <span>9</span>
            </div>
            <div class="metal linear num-button">
                <span>0</span>
            </div>
            <div class="button del metal linear">
                <span>Del</span>
            </div>
            <div class="button settle metal linear">
                <span>SETTLE</span>
            </div>
            <div class="clear"></div>
        </div>
    </div>

</div>

2 个答案:

答案 0 :(得分:1)

JQuery代码似乎没问题,完全没问题。查看Demo

$('.amount').blur(function(){
    if($(this).val() != ""){
        totalFocusOut($(this));
    }
});

您的HTML不正确且错误很多,您需要更正。

<input class="discount" placeholder="00.00" type="text"></text>

应该是

<input class="discount" placeholder="00.00" type="text"/>

<label for="total"">Total</label>

应该是

<label for="total">Total</label>

答案 1 :(得分:1)

<强> Fiddle

你的jQuery没问题,这是你的HTML有问题。

适用的更正:
- 输入后删除所有</text> - 删除<input class="total-due" placeholder="Total Due"...上的值 - 删除<label for="total"">Total</label>

中的额外双引号