2016-09-23 33 views
2

我想从<asp:textbox>调用javascript函数。我的javascript函数需要从两个<asp:textbox>中增加值,将它们相加,然后将值传递给另一个<asp:textbox>。我javascript功能如下如何将值从<asp:textbox>传递给javascript函数

function getAmount() { 
    var total = $('#ItemRate').val() * $('#ItemQty').val(); 
    $('#ItemAmount').val(total); 
} 

<textbox>如下

<asp:TextBox runat="server" id="ItemRate" /> 
<asp:TextBox runat="server" id="ItemQty" onchange="javascript:getAmount()" /> 
<asp:TextBox runat="server" id="ItemAmount" /> 

在运行,我的控制台显示为NaN的总价值。我该如何解决这个问题?

+0

你使用jquery?那么为什么没有jQuery的标签呢? –

+1

我添加了jquery标签:) –

回答

2

一般ASP改变对于具有runat="server"属性的每个元素的属性ID

所以你需要其他属性来选择它们,例如。 class

尝试此代码:

function getAmount() { 
    var total = $('.ItemRate').val() * $('.ItemQty').val(); 
    $('#ItemAmount').val(total); 
} 

HTML:

<asp:TextBox runat="server" class="ItemRate" id="ItemRate" /> 
<asp:TextBox runat="server" class="ItemQty" id="ItemQty" onchange="javascript:getAmount()" /> 
<asp:TextBox runat="server" class="ItemAmount" id="ItemAmount" /> 
+0

抱歉,由于我们正在调用类,因此我在您的答案中将'('#ItemRate')'更改为'('.ItemRate')''。除此之外,你的代码工作完美 –

+0

Ooops耶,我想念它...... –

+0

看起来像'('#ItemAmount')'也需要改变类选择器 –

2

变化value()val()

function getAmount() { 
    var total = $('#ItemRate').val() * $('#ItemQty').val(); 
    $('#ItemAmount').val(total); 
} 
+0

实际上这是一个错字。问题在于'var total',它被返回为NaN –

1

尝试用如下面的代码在浮动解析值。

parseFloat("10"); 

现在乘以这两个值,也检查你的id得到改变或不在浏览器中做检查元素。

3

下面是完整的代码

Value1: <asp:TextBox ID="tbx1" runat="server"></asp:TextBox> 
Value2: <asp:TextBox ID="tbx2" runat="server"></asp:TextBox> 
<button onclick="Add()">Add</button><br /> 

Result:<asp:TextBox ID="tbx3" runat="server"></asp:TextBox> 

<script type="text/javascript"> 

    function Add() 
    { 

     var x = document.getElementById('<%= tbx1.ClientID %>').value; 
     var y = document.getElementById('<%= tbx2.ClientID %>').value; 
    document.getElementById('<%= tbx3.ClientID %>').value=parseInt(x)+parseInt(y); 
    } 
</script> 
相关问题