2016-04-02 79 views
0

我試圖通過在文本字段中輸入數量和成本來動態計算成本,進行數學計算並將值返回到<label>。我將結果發送到控制檯並且一切正常,但是當我將值更新到<label>元素時,它顯示如下:「[object Window]」。代碼如下:jQuery更新文本字段不工作

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

這樣做的HTML部分是

<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> 

什麼可能會錯誤的任何想法? BTW,它是一個PhoneGap proyect,我正在使用jQuery。

+0

什麼是控制檯日誌打印? – ggderas

+0

這是打印操作的結果,即:3500 –

+0

如果您忽略toString函數並僅將valorCotiza值設置爲 – ggderas

回答

1

toString(valorCotiza)這個toString(valorCotiza)特定的代碼等於window.toString(valorCotiza)在一個普通的環境。這將返回"[object Window]"。所以下面的代碼足以完成你的任務。

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

簡單的串聯足以將數字更改爲字符串。不需要明確地做。如果你仍然想這樣做,那麼使用Number.prototype.toString()。可以使用像,

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

謝謝!有用!! :D –

+0

@ChristianRodriguez很高興幫助! :)嘗試按任何答案在這裏幫助你解決你的問題的任何內容中的刻度線。這不是強制。 :) –

+0

它不會讓我再等2分鐘:S –

0

使用String(valorCotiza)。使用toString()給出了窗口的字符串表示形式(如您所見)。

0

您可以使用

valorCotiza.toString() 

得到轉換成字符串的數量。如果您不想使用字符串進行concat操作時需要字符串,則必須使用它。尤其是,你的連接操作(「$」+ valorCotiza)應該這樣做。