2012-04-26 19 views
1

請先參考示例鏈接瞭解我的問題。Jquery中的自動除法和求和值

首先im分割一個值並在輸入文本字段中顯示每個分割值。

,你可以在這裏看到的樣品.. 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

只是使您的創建輸入「只讀」。 :) – 2012-04-26 07:11:56

+0

uffff ....這將是H.A.R.D.您需要檢查編輯了哪些元素,然後減去總數(或剩餘總數)中的值,然後刷新「未觸及」輸入上的值。在三個字段「未觸及」之後,你必須停止該部分。爲什麼? couse:當你改變一個時,你必須將結果分成兩個字段。 – 2012-04-26 07:16:31

回答

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'); 
} 

我正在freehanding這使給予或採取一些錯誤......但這是一種更有效的方法,而不是將字符串附加爲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')

希望它有幫助!

+0

哇,這只是偉大的:) – 2012-05-02 04:48:37

0

棘手的部分是確定用戶想要有意識地覆蓋哪些拆分字段。從用戶體驗的角度來看,我建議拆分字段爲文本並添加用戶明確檢查的複選框。就像'自定義價值'。它最終會這樣看,如果一個人決定,定製第二場:

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

你會再知道)(拆分的數量基於分期付款輸入值)和b)的數量用戶選擇設置爲自定義值的拆分。

數學然後是合計金額 - (每個自定義字段加在一起)/其餘分割字段。

+0

你讓我更困惑... 它並沒有幫助...;( – 2012-04-26 06:57:48

+0

你對此感到困惑嗎? – 2012-04-26 07:01:50

+0

嗯,我可以放置一個標識符來決定哪個字段正在被編輯,但這並不能解決問題。 。我需要重新計算動態生成的輸入字段。這是我最不知道的部分。 – 2012-04-26 07:06:32