我想将两个文本框中的值相乘(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')");
答案 0 :(得分:5)
你应该改变
var total = txt1 * txt2;
到
var total = txt1.value * txt2.value;
txt1
和txt2
是输入元素本身,而不是它们包含的值。
在您的下行中,您自己使用.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)
//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')");