2014-03-13 58 views
0

我有两个textboxes名为totalAmountexpenseAmount和另一个div在asp.net页面(使用C#)调用currentAmount。 我的要求是,我必须更新totalAmount=expenseAmount+currentAmount,只要expenseAmount值的变化。我必须实现这一点,没有页面刷新和值应刷新页面后仍然存在。如何使用另一个文本框中的值更新文本框?

+1

写在该文本框的文本已改变事件的总和代码。自动回发属性必须为真。并使用更新面板,如果你不想刷新页面 – SRJ

+1

谢谢。但事情是我正在使用自定义工具。在这里我只有有限的控件使用。所以我不能在其中使用updatePanel。 –

+1

你可以使用javascrpt的textchange http://forums.asp.net/t/1346989.aspx?calling+javascript+function+on+TextBox+Change+Event – SRJ

回答

2

如果你的代码允许使用JQuery,你可以很容易地做到这一点,而无需刷新页面。

请在准备好的文档下编写代码。

<script> 
    var calculatetotalamount = function() { 
     var eamount = parseFloat($("#expenseAmount").val()) 
     var camount = parseFloat($("#currentAmount").val()) 
     $("#totalAmount").val(eamount + camount); 
    } 
    $(function() { 

     calculatetotalamount(); 
     $("#currentAmount").on("change", function() { 
      calculatetotalamount(); 
     }); 
    }); 
</script> 
+0

它在客户端正确完成?但是页面刷新后,值不应该持续。即使在页面刷新后,我也需要该值。 –

+0

这两个消费额和currentamount是用户输入? 如果是的话,你有使用内存来存储会话/ cookie数据。 如果不是那么页面刷新后totalamount不会改变。 –

+0

使用html5本地存储或会话... – RemS

0
<script type="text/javascript"> 
    function xyz() { 
     $("#totalAmount")[0].value = parseFloat($("#expenseAmount").val()) + parseFloat($("#currentAmount").val()); 
    } 
</script> 
<div> 
    <asp:Label ID="Label3" runat="server" Text="currentAmount"></asp:Label> 
    <asp:TextBox ID="currentAmount" runat="server" ClientIDMode="Static"></asp:TextBox> 
    <br /> 
</div> 
<div> 
    <asp:Label ID="Label2" runat="server" Text="expenseAmount"></asp:Label> 
    <asp:TextBox ID="expenseAmount" runat="server" onchange="xyz();" ClientIDMode="Static"></asp:TextBox> 
    <br /> 
</div> 
<div> 
    <asp:Label ID="Label1" runat="server" Text="totalAmount"></asp:Label> 
    <asp:TextBox ID="totalAmount" runat="server" ClientIDMode="Static"></asp:TextBox> 
</div> 
相关问题