Archief - jQuery: probleempje met $(this) in .each()

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Bram

Legacy Member
Hey all

het onderwerp is misschien niet super duidelijk, maar ik wist nie hoe het anders uit te leggen.

Ik heb een wijnbestelformuliertje voor een vzw online staan en ik wou daar een quick'n dirty javascriptje opsteken dat de subtotalen en het totaal berekent van de bestelling.

De subtotalen lukken, maar om het totaal te berekenen heb ik een probleem.
Code:
function calcTotal() {
	var total = 0
	$(".subtotal").each(function(i) {
		var subtotal = $(this).val();
		$("#test").text(subtotal + "bla");
		total += parseFloat($(this).val());
	});
	$("#total").val(total + " €");
};

$(document).ready(function() {
	$("table input").each(function() {
		$(this).keyup(function() {
			var pieceprice = parseFloat($(this).parent().prev().text());
			var subtotal = pieceprice * $(this).val();
			$(this).parent().next().children().val(subtotal + " €");
			calcTotal();
		});
	});
});
Dat is de code van m'n javascript, gebaseerd op jquery dus. Nu moet ik toegeven dat ik maar weinig van javascript ken en dus niet goed waar wat fout gaat. Al wat ik kan zeggen is dat ik in m'n total input "NaN €" (not a number I presume?) krijg.

Die test.text was om eens te kijken wat er in subtotal zat, maar die blijft om een of andere reden leeg :(

Het formulier kan je hier bekijken.

BleKKie

Legacy Member
Code:
function calcTotal() {
   var total = 0
   $(".subtotal").each(function(i) {
      var subtotal = $(this).val();
      $("#test").text(subtotal + "bla");
      if($(this).val() != null){
         total += parseFloat($(this).val());
      }
   });
   $("#total").val(total + " €");
};

zoiets dus, dan zou het wel moeten werken denk ik, omdat (als ge er vb 2 invult en de rest niet) hij de lege velden niet kan verwerken.

als ge firefox gebruikt, kunt ge via firebug javascript gaan debuggen en dan word het snel duidelijk
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan