2016-04-02 13 views
0

Ich versuche, eine Kosten dynamisch zu berechnen, indem Sie Mengen und Kosten in Textfelder eingeben, die Mathematik tun und den Wert an eine <label> zurückgeben. Ich sende die Ergebnisse an die Konsole und alles ist in Ordnung, aber wenn ich den Wert auf das <label> Element aktualisiere, wird dies angezeigt: "[Objektfenster]". Der Code lautet wie folgt:jQuery Update Textfeld funktioniert nicht

function updateCost(){ 
    var numUF = $("#numUF").val(); 
    var costUF = $("#costUF").val(); 
    var numDBT = $("#numDBT").val(); 
    var costDBT = $("#costDBT").val(); 
    var numDMT = $("#numDMT").val(); 
    var costDMT = $("#costDMT").val(); 
    var numTr = $("#numTr").val(); 
    var costTr = $("#costTr").val(); 

    var valorCotiza = (numUF * costUF) + (numDBT * costDBT) + (numDMT * costDMT) + (numTr * costTr); 
    $("#valorCotiza").text("$ " + toString(valorCotiza)); 
    console.log(valorCotiza); 
} 

Der HTML-Teil dieser

ist
<div class="item"> 
    <label class="H5">Valor total cotización:</label><br /> 
    <label id="valorCotiza">$</label> 
    <br /><br /> 
    <label class="H5">Valor IVA: (16%)</label><br /> 
    <label id="valorIVA">$</label> 
</div> 

Irgendwelche Ideen, was könnte schief gehen? BTW, es ist ein PhoneGap-Projekt, und ich benutze jQuery.

+0

Was ist Konsolenprotokolldruck? – ggderas

+0

Es wird das Ergebnis der Operation gedruckt, dh: 3500 –

+0

Wie wäre es, wenn Sie die toString-Funktion ignorieren und nur den valorCotiza-Wert setzen – ggderas

Antwort

1

Dieser toString(valorCotiza) bestimmte Code ist gleich window.toString(valorCotiza) in einer normalen Umgebung. Und das wird "[object Window]" zurückgeben. Der unten stehende Code reicht aus, um Ihre Aufgabe zu erledigen.

$("#valorCotiza").text("$ " + valorCotiza); 

Eine einfache Verkettung genügt, um eine Zahl in eine Zeichenkette zu ändern. Keine Notwendigkeit, es explizit zu tun. Wenn Sie dies weiterhin tun möchten, verwenden Sie die Number.prototype.toString(). Das kann verwendet werden wie,

$("#valorCotiza").text("$ " + valorCotiza.toString()); 
+1

Danke !! Es klappt!! : D –

+0

@ChristianRodriguez Froh, zu helfen! :) Versuchen Sie, das Häkchen in den Antworten zu drücken, die Ihnen bei der Lösung Ihres Problems helfen. Und das ist kein Zwang. :) –

+0

Es wird mich nicht für weitere 2 Minuten lassen: S –

0

Verwenden Sie String(valorCotiza). Mit toString() erhalten Sie eine String-Darstellung des Fensters (wie Sie gesehen haben).

0

können Sie

valorCotiza.toString() 

verwenden, um die Zahl zu String umgewandelt zu bekommen. Sie müssen es verwenden, wenn Sie eine Zeichenfolge möchten, wenn Sie keine Concat-Operation mit einer Zeichenfolge ausführen. In Ihrem Fall sollte Ihre Verkettungsoperation ("$" + valorCotiza) es tun.