我的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”。但我想确认他们要存入多少钱。我怎么能这样做?
答案 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();
}
}
}
显然,您不必在页面加载时分配隐藏字段的值。您可以在对您正在构建的网站最有意义的地方进行此操作。