在asp.net中使用javascript计算价格

在asp.net中使用javascript计算价格,javascript,html,asp.net,gridview,onblur,Javascript,Html,Asp.net,Gridview,Onblur,我在gridview中使用textbox,希望通过textbox中的js计算值。我的代码没有显示任何错误。我想把数量乘以价格,得到总价 function totalise(price, rate, qt) { var qty = window.document.getElementById(qt).value; var rate = window.document.getElementById(rate).value; var price = rate; pric

我在gridview中使用textbox,希望通过textbox中的js计算值。我的代码没有显示任何错误。我想把数量乘以价格,得到总价

function totalise(price, rate, qt) {
    var qty = window.document.getElementById(qt).value;
    var rate = window.document.getElementById(rate).value;
    var price = rate;
    price.value = rate * qty;
}

<asp:TextBox ID="txtStonePrice" runat="server" onblur=" totalise(this)" ></asp:TextBox>
功能总计(价格、费率、qt){
var qty=window.document.getElementById(qt).value;
var rate=window.document.getElementById(rate).value;
var价格=利率;
price.value=费率*数量;
}

首先,您实际上没有将
rate
qt
传递给totalise函数,因此无法查找它们

其次,尝试对这些(
rate.value
qty
)值使用parseFloat或parseInt,否则它们将是字符串

第三,rate已经等于ID==rate的元素的值,所以在解决了我提到的其他两件事情之后,您将需要如下内容:

(请注意,我忽略了一些不好的命名约定。此外,您可能应该进行一些错误检查,以确保您确实获得了按Id查找的元素)


嗯,我发现这里有几个问题

首先,您将从
onblur
事件处理程序调用函数作为
totalise(this)
,这意味着您不会以
rate
qt
参数传递任何内容,因此无法获取适当的元素并检索它们的值


第二,这个赋值:
var价格=利率看起来多余。您正在将传递的控件中的
price
值重写为某个浮点值,因此稍后此调用
price.value=rate*qty
将无效。

至少您应该显示一些导致问题的代码。这里没有读心术的人,所以没人能猜到你这边出了什么问题。请不要把你的代码作为评论发布,因为以这种方式发布的代码是完全不可读的。使用问题下方的
edit
链接进行编辑。请更新汇总功能。onblur事件处理程序中有一个函数参数,但函数定义中有3个参数。其他两个显然没有定义。他的事件处理程序既不是通过率也不是qt。如果你解析float(rate.value),你会得到NaN。还不会出现错误。@achan啊,哇。我不知道他发布了他的事件处理程序。我训练自己忽略asp,哈哈。
function totalise(price, rate, qt) {
    var qty = window.document.getElementById(qt).value;
    var rate = window.document.getElementById(rate);
    var price = rate;
    price.value = parseFloat(rate.value) * parseFloat(qty);
}