2010-08-20 56 views
1

我想將兩個文本框中的值相乘(txtBox1應該包含整數值,txtBox2應該包含浮點值),並將結果放在第三個文本框中。我的代碼在下面,但它不起作用。 javascript函數被調用,否則失敗。有人可以幫助我正確地編碼:\?謝謝如何將文本框值與javascript相乘

 //the javascript function 
     function CalculateTotal(id1, id2) { 
      var txt1 = document.getElementById(id1); 
      var txt2 = document.getElementById(id2); 

      var total = txt1 * txt2; 
      document.getElementById("txtTotal").value = parseFloat(total); 
     } 

     //c# code, programmatically adding attribute 
     txtBox1.Attributes.Add("onBlur", "CalculateTotal('txtBox1, txtBox2')"); 
+0

很難選擇一個正確答案時都非常相似。還有一個問題是我在C#代碼中遇到的問題。雖然文本框是這樣創建的:TextBox txtBox1 = new TextBox();我需要做的還是爲ID添加一個值,如下所示:txtBox1.ID =「txtBox1」;感謝您的幫助! – brookmarker 2010-08-20 14:09:44

回答

5

你應該改變

var total = txt1 * txt2; 

var total = txt1.value * txt2.value; 

txt1txt2是輸入元素本身,而不是它們所包含的值。

在你行進一步下跌你用.value自己設置參數;)

[編輯]

正如@丹杜米特魯注意,您可以使用parseFloat/parseInt,但如果這是比較有用的輸入字段包含額外的文本,在小數點前標記缺失數字,指數表示法等

4

我認爲你也有一個問題,獲取文本框的ID,每個變量具有單獨的撇號:

//the javascript function 
function CalculateTotal(id1, id2) { 
    var txt1 = document.getElementById(id1); 
    var txt2 = document.getElementById(id2); 

    var total = parseInt(txt1.value) * parseFloat(txt2.value); 
    document.getElementById("txtTotal").value = total; 
} 

//c# code, programmatically adding attribute 
txtBox1.Attributes.Add("onblur", "CalculateTotal('txtBox1', 'txtBox2')"); 
+0

當使用parseInt時,您幾乎總是要傳遞第二個參數來指示基數:parseInt(txtBox1.value,10) – 2010-08-20 07:47:28

+1

「如果只有一個參數,則根據數字的一般JavaScript語法檢測數字基數。以0x或-0x開始的數據將被解析爲十六進制數字;以0或-0開頭的字符串將被解析爲八進制數字,其他所有字符串將被解析爲十進制數字。所以如果你擔心輸入像077或0023,是的,你應該使用第二個參數。但我不會爲此而煩惱。 – 2010-08-20 07:51:46

0

Replace to below code

//the javascript function 
    function CalculateTotal(id1, id2) { 
     var txt1 = document.getElementById("id1").value; 
     var txt2 = document.getElementById("id2").value; 
     var total = txt1 * txt2; 
     document.getElementById("txtTotal").value = parseFloat(total); 
    } 

    //c# code, programmatically adding attribute 
    txtBox1.Attributes.Add("onBlur", "CalculateTotal('txtBox1, txtBox2')"); 
相關問題