请先参阅示例链接以了解我的问题。
首先将值分割并将每个分割值显示在输入文本字段中。
您可以在此处查看示例.. 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中完成这个过程,分割的数量可能因用户输入而异。
什么是正确的方法?
答案 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 - (每个自定义字段加在一起)/余数分割字段。