2017-11-27 5 views
-1

Ich habe eine Tabelle, wo ich Zeilen dynamisch zu einer Tabelle hinzufügen kann. Aber ich würde gerne in der Lage sein, eine Zwischensumme am Ende des Tisches einzutragen. Bisher habe ich so etwas wie:SUM dynamisch Felder in jQuery hinzugefügt

JavaScript:

$(document).on('change', 'input[name^="shipment_details[charge][]"]', function() { 
    var sum = 0; 
    $('input[name^="shipment_details[charge][]"]').each(function(){ 
     sum += +$(this).val(); 
    }); 
    $('input[name^="freightBillSubtotal"]').val(sum); 
}); 

HTML

<input type="text" class="qty1" value="" name="shipment_details[charge][]"/> 
<input type="text" class="qty1" value="" name="shipment_details[charge][]"/> 
<input type="text" class="qty1" value="" name="shipment_details[charge][]"/> 
<input type="text" class="qty1" value="" name="shipment_details[charge][]"/> 
<input type="text" class="qty1" value="" name="shipment_details[charge][]"/> 

Aber das funktioniert nicht, wenn ich mit in JSFiddle spielen, so dass ich bin gespannt, ob ich das tue, Name Teil des Javascript falsch, oder wenn ich gerade nicht alles zusammen mache. Ich sollte mein Textfeld sagen, dass für wo zu „deposit“ dem Wert Ihrer ist folgende: Sie

<input type="text" readonly name="freightBillSubtotal" id="freightBillSubtotal"> 
+0

Zeigen Sie uns Ihre JSFiddle, da der angegebene Code funktionieren sollte https://jsfiddle.net/z_acharki/jnwrc5ay/431/ –

Antwort

1

Wenn ich verstehe, wollen Sie Summe aller Werte in Eingängen bekommen ?! versuchen es:

$(document).on('change', 'input[name^="shipment_details[charge][]"]', function() { 
    var sum = 0; 
    $('input[name^="shipment_details[charge][]"]').each(function(index,elem){ 
     let value = $(elem).val(); 
     if(typeof value ==="number"){ 
     sum += +value; 
     } 
    }); 
$('input[name^="freightBillSubtotal"]').val(sum); 
    console.log(sum) 
}); 

Ich empfehle stattdessen komplexe Selektor Klasse Selektoren zu verwenden. Der Code wird einfach sein.

Verwandte Themen