我使用 AJAX 控件工具包在 ASP.NET 页面中创建了一个滑块。为了增加和减少滑块的值,我还放置了一个“加号”和一个“减号”按钮。在每个按钮的客户端单击事件中,我使用了一个 Javascript 函数,该函数将进行一些计算并将其显示为asp:label
滑块下方。现在的问题是,如果我通过拖动来更改滑块的值,则调用该函数并将计算显示为标签,但是,如果我通过按钮(“加号”或“减号”按钮)更改滑块的值,该函数被调用,但计算仅显示几秒钟作为标签。1 2 秒后标签消失,什么也没有显示。
有人对我的问题有任何想法吗?
这是代码:
“加号”按钮:
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/icon_plus1.jpg"
style="z-index: 1; left: 830px; top: 130px; position: absolute" onclientclick="change1();"/>
这是我正在调用的函数:
function change1() { var object = document.getElementById("TextBox"); var val = object.value; object.value = parseInt(val) + 5; updatesum(); }
主要计算在
updatesum()
函数中:function updatesum() { var principal = slider1Value; var daily_interest_rate = eval((360 / 100) / 365); var transaction_fee = eval(5.50); var number_of_days = slider2Value; var due_date = addDays(eval(number_of_days)).toDateString(); var interest_amount = (eval(daily_interest_rate) * eval(number_of_days) * eval(eval(principal) + eval(transaction_fee))) + eval(transaction_fee); var total_amount = interest_amount + eval(principal); lblDate.innerHTML = due_date; lblBorrow.innerHTML = "£ " + slider1Value; lblInter.innerHTML = "£ " + interest_amount.toFixed(2); lblRepay.innerHTML = "£ " + total_amount.toFixed(2); }
滑块及其目标控件 ID 文本框:
<ajaxToolkit:SliderExtender ID="SliderExtender2" runat="server" length="400" Enabled="True" Maximum="400" Minimum="0" Steps="80" TargetControlID="TextBox" BoundControlID="TextBox1" RailCssClass="SliderRail"> </ajaxToolkit:SliderExtender> <asp:TextBox ID="TextBox" runat="server" OnChange ="javascript:updatesum(this);" style="z-index: 1; top: 130px; position: absolute; left: 430px; bottom: 130px" </asp:TextBox>