如果输入随jquery change事件而改变,则重置总和

时间:2015-11-04 01:35:14

标签: javascript jquery html

我有一个输入列表,我将用它来设置值(0到100)。 这些输入的总值不能超过100,我已经完成并且它正在工作,但是我需要一种方法来减去总数,如果我改变其中一个输入并且总数变为< 100

以下是我到目前为止的一个例子:

var soma_total = 0; 
jQuery(function($){
    $('input[type=text]').each(function () {
        $(this).change(function(){ 

        var valor = $(this).val();
        valorPorcentagem = valor;   
            eE = procPorcentagem(valorPorcentagem);

            eE = Math.ceil(eE);

            valorPorcentagem = parseInt(valorPorcentagem);

            if((parseInt(valorPorcentagem) + soma_total) > 100)
                valorPorcentagem = 100 - soma_total;
                $(this).val(valorPorcentagem);
                soma_total += valorPorcentagem;
console.log(soma_total);
                $('#final_sum').append('<li>'+soma_total+'</li>');

        });
    });
});

function procPorcentagem(entradaUsuario){
var resultadoPorcem = (entradaUsuario * 48) / 100;
return resultadoPorcem;
}

JSFiddle

请帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

此演示可能会让您了解如何继续:

$(function() {
    $(':text').val(0).on('change', function(e) {
        var i = $(':text'),
            total = 0;
        i.each(function() {
            total += +this.value;
        });
        if( total > 100 ) {
            this.value -= (total - 100);
        }
        total = 0;
        i.each(function() {
            total += +this.value;
        });
        $('#final_sum').text( total );
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input type="text">
    <input type="text">
        <input type="text">
            
            <div id="final_sum">0</div>