在另一个字段上键入时更新字段的值

时间:2015-06-01 11:26:01

标签: javascript jquery

我希望在用户输入字段km时更新字段数量。我使用 .change 但该字段仅在字段失去焦点时更新,如onfocusout事件。为了存档我的请求,我尝试了什么?

https://jsfiddle.net/yUhtj/

<label>Expense</label>
    <select id="ExpenseTypeId" name="ExpenseTypeId">
        <option value=""></option>
        <option value="1">Avance sur frais</option>
        <option value="2">Carburant voiture societ&#233;</option>
        <option value="3">Frais kilom&#233;triques</option>
    </select>
    <label id="kmtxt" class="hidden">Distance (the amount will be automatically calculated</label>
    <input type='text' id="km" class="hidden"/>
    <label id="amounttxt" >Amount</label>
    <input type='text' id="amount" />

<script>
    $('#ExpenseTypeId').change(function(){
        var selected_item = $(this).val()
        if(selected_item == "3"){
            $('#kmtxt').val("").removeClass('hidden');
            $('#km').val("").removeClass('hidden');
            $('#amount').prop('readonly', true);
        }else{
            $('#kmtxt').val(selected_item).addClass('hidden');
            $('#km').val(selected_item).addClass('hidden');
        }
    });    

    $("#km").change(function () {

        var price = Number($(this).val());
        var total = (price) * 0.25;
        $("#amount").val(total);
    });
</script>

2 个答案:

答案 0 :(得分:6)

使用keyup代替change元素<{1}}元素

#km

答案 1 :(得分:2)

请勿使用change,而是使用keyboard事件。

将您的活动更改为keyup

$('"#km"').keyup(function(){
   var price = Number($(this).val());
   var total = (price) * 0.25;
   $("#amount").val(total);
});  

<强> Fiddle