2016-01-19 79 views
0

這裏是我的代碼:jQuery的 - 克隆元素的總和將不隨輸入的功能工作

$(document).ready(function() { 
    $('#clone').click(function() { 
    var target = $(this).closest('.groupcontainer'); 
    target.clone(true, true).insertAfter(target); 
    }); 

    $('.input').on('input',function(){ 
    $(this).parent().children('.grouptotal').val($(this).val() * $(this).parent().children('.input2').val()); 
    }); 

    $('.input2').on('input', function(){ 
    $(this).parent().children('.grouptotal').val($(this).val() * $(this).parent().children('.input').val()); 
    }); 
}); 

$(document).on('change', '.grouptotal', function(){ 
    var sum = 0; 
    $('.grouptotal').each(function(){ 
    sum += +$(this).val(); 
    }); 
    $('#subtotal').val(sum); 
}); 

我的問題是,我需要#subtotal添加的.grouptotal每個實例,但#subtotal當它到達沒有更新這是一個從

$('.input').on('input',function(){ 
    $(this).parent().children('.grouptotal').val($(this).val() * 
    $(this).parent().children('.input2').val()); 
    }); 

$('.input2').on('input', function(){ 
    $(this).parent().children('.grouptotal').val($(this).val() * 
    $(this).parent().children('.input').val()); 
    }); 

#subtotal輸入會更新,如果我手動把號碼.grouptotal但是。有人能向我解釋我錯過了什麼嗎?

這是Fiddle。它看起來很sl but,但它提供了這個想法。

數量*我.grouptotal

我如何使它所以#subtotal將採取.grouptotal S和自動把它們加起來系統會自動更新?我試圖改變$(document).on('change', '.grouptotal', function(){「改變」到「輸入」和其他幾個人,但沒有運氣。

此外,它必須工作,如果單擊#clone按鈕來複制組。

回答

0

當設定編程與val('value')change事件不會觸發值,你必須真正觸發它

$(this).parent().children('.grouptotal').val($(this).val()).trigger('change') 
+0

我明白了,但也許我做得不對?現在我的數量*系統價格在grouptotal中沒有更新。 $('。input')。on('input',function(){(0)().parent()。children('。grouptotal')。val($(this).val()。trigger ('change')* $(this).parent()。children('。input2')。val()); \t}); ('。input2')。on('input',function(){ \t $(this).parent()。children('。grouptotal')。val($(this).val(' ).trigger('change')* $(this).parent()。children('。input')。val()); \t});' –

+0

這個工作,玩弄它。像這樣添加.trigger:'$(this).parent()。children('。grouptotal')。trigger('change')'。謝謝! –

0

讓我們再試試這個。顯然,以編程方式更改grouptotal值不會觸發更改事件。我原以爲會這樣,所以你的代碼對我來說很合適。但是,爲了解決這個問題,我添加了一個明確的'.grouptotal'觸發器。你可以看到fiddle here

只是添加代碼:

('.grouptotal').change(); 

到這兩個處理從輸入,總和。這可能不是你正在尋找的解決方案,但它似乎工作

+0

謝謝,但是當我擺脫+它不添加,它只是連接'.grouptotal's而不是總結它們。 –

+0

似乎很適合我,請查看小提琴:https://jsfiddle.net/se7og7k7/3/ – darrylivan

+0

對不起 - 我誤解了你的問題 - 我現在看到了。讓我重新看! – darrylivan