如何将文本框值与javascript相乘

时间:2010-08-20 05:59:13

标签: c# javascript asp.net

我想将两个文本框中的值相乘(txtBox1应包含一个Integer值,txtBox2应包含一个Float值)并将结果放在第三个文本框中。我的代码如下,但它不起作用。调用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')");

3 个答案:

答案 0 :(得分:5)

你应该改变

var total = txt1 * txt2;

var total = txt1.value * txt2.value;

txt1txt2是输入元素本身,而不是它们包含的值。

在您的下行中,您自己使用.value来设置参数;)

<强> [编辑]

如@Dan Dumitru所述,您可以使用parseFloat/parseInt,但如果您的输入字段包含其他文本,小数点前的缺失数字,指数表示法等,则此功能更有用。

答案 1 :(得分: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')");

答案 2 :(得分: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')");