Jquery中的自动除和和值

时间:2012-04-26 06:40:47

标签: jquery math

请先参阅示例链接以了解我的问题。

首先将值分割并将每个分割值显示在输入文本字段中。

您可以在此处查看示例.. http://fahidmohammad.in/demo/sample/

样本链接中的

- - 总数是要分割的数量,分期数是分割数量。

我知道你在想什么......我究竟需要什么?

这是该过程的第二阶段:

现在我有分裂,实际需要的是,如果我将任何分割输入的值更改为下一个值,或者剩余应该与总金额自动求和。

...例如

Total Amount = 9000
Number of installment = 3

Split1 = 3000
Split2 = 3000
Split3 = 3000

如果我决定更改split1 to 4000,则剩余的拆分应自动求和。

例如..

Split1 = 4000
Split2 = 2500 [auto sum]
Split3 = 2500 [auto sum]

在数学上我知道这个过程,但我如何在jquery中完成这个过程,分割的数量可能因用户输入而异。

什么是正确的方法?

2 个答案:

答案 0 :(得分:2)

这是你需要做的......

我建议首先添加像

这样的元素
var numInst = $('input[name="ni"]').val();
var total = $('input[name="ta"]').val();
var payment = total / numInst;

for(var i = 0; i < total; i++){
    $('<input/>').attr({
        'type' : 'text',
        'name' : 'sum[]'
    }).val(payment).addClass('installment').appendTo('#inner');
}

我是自由发送这样的,所以给出或采取一些错误......但这是一种更有效的方法,而不是将字符串作为html附加。

您的分期付款onchange事件:

$('.installment').change(function(){
    var numInst = $('input[name="ni"]').val();
    var total = $('input[name="ta"]').val();
    var otherPayment = (total - $(this).val()) / (numInst - 1);

    $(this).addClass('dontChange');

    $.each($('.installment'),function(i, val){
        if(!($(this).hasClass('dontChange')){
            $(this).val(otherPayment);
        }
    });

    $(this).removeClass('dontChange');
});
就像我说的那样,我把这一切都解放了,但我认为逻辑是坚实的。只需在临时手动更改的类中添加一个类,然后遍历分期类文本框并将值更改为等于总数,减去手动输入的值,除以1等于ni等于的付款。

我可以预见的唯一问题是,如果没有为那些手动更改的框设置标记,如果用户更改了另一个分期付款框,任何更改都将被覆盖。

简单的解决方法是移动$(this).removeClass('dontChange');从安装onchange函数到你的ni和ta onchange处理程序的结尾。只需将$(this)更改为$('。installment')

希望它有所帮助!

答案 1 :(得分:0)

棘手的部分是确定用户想要故意覆盖哪些分割字段。从用户体验的角度来看,我建议拆分字段为文本并添加用户明确检查的复选框。类似于&#39;自定义价值&#39;。如果一个人决定自定义第二个字段,它最终看起来像这样:

split 1 =  2000   [ ] enter custom value
split 2 = [4000]  [X] enter custom value
split 3 =  2000   [ ] enter custom value

然后您将知道a)拆分数量(基于分期付款输入中的值)和b)用户选择设置为自定义值的拆分数量。

数学是TOTAL AMOUNT - (每个自定义字段加在一起)/余数分割字段。