如何在JavaScript的确认功能中添加字符串值

时间:2014-02-24 23:28:54

标签: c# javascript

我的asp按钮中有JavaScript功能。

<asp:Button ID="btnCommission" runat="server" Text="Deposit Commission" OnClientClick="if (!confirm('Are you sure you want to deposit commission into points?')) return false;" OnClick="btnCommission_Click" />

但我想在我的确认函数中评估<%= (commission_total)%>,如下所示:

OnClientClick="if (!confirm('Are you sure you want to deposit' + <%= (commission_total)%> + 'commission into points?')) return false;"

但它不允许我添加这个值,说“这不是scriptlet”。但我想确认他们要存入多少钱。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

您可以使用JavaScript获取用户输入的值。假设用户将值输入到某个文本框中,如下所示:<asp:Textbox runat="server" ID="myAmount" />。然后我们可以抓住这样的值:document.querySelector('input[id$="myAmount"]').value。所以,您可以按如下方式使用它:

OnClientClick="if (!confirm('Are you sure you want to deposit' + document.querySelector('input[id$="myAmount"]').value + 'commission into points?')) return false;"

这是可能的解决方案之一。因为OnClientClick事件发生在回发之前,所以你必须在JavaScript中执行此操作。如果您不想在JavaScript中执行此操作,则必须让回发发生并处理打开弹出窗口以确认金额。如果你想这样做,你可以考虑使用Ajax Toolkit或类似的东西在用户点击按钮后打开一个窗口。

我希望有所帮助。

更新

您可以使用隐藏字段并使用值更新隐藏字段。然后,您可以从JavaScript中获取该值并在确认对话框中显示它。这是标记

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function showValue() {
            var val = document.querySelector('#<%= test1.ClientID %>').value;
            return confirm('Is this correct? ' + val);
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:HiddenField runat="server" ID="test1" ></asp:HiddenField>
        <asp:Button runat="server" ID="tester" OnClientClick="showValue();" Text="Show" />
    </div>
    </form>
</body>
</html>

背后的代码:

using System;

namespace WebApplication1
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected double test;
        protected void Page_Load(object sender, EventArgs e)
        {
            test = 12.50;

            test1.Value = test.ToString();
        }
    }
}

显然,您不必在页面加载时分配隐藏字段的值。您可以在对您正在构建的网站最有意义的地方进行此操作。