我在 ASP.NET 中有一个 Web 应用程序,后面有 C# 代码。主登录页面将有一种触摸板类型的 UI,其中有 0-9 的按钮用于输入 pin #。
所以,我是 ASP.NET 和 JavaScript 的新手。当在 UI 上单击这些数字按钮时,无需在服务器端执行任何操作 - 根本不应该有任何回发。所需要做的就是在标签的文本上附加一个数字。我试图弄清楚如何在 JavaScript 中做到这一点,而按钮不会导致任何类型的回发。
为了使示例更简单,假设我在屏幕上有一个带有单个标签和单个按钮的 UI,并且每次单击该单个按钮时,它都应该在标签的文本中附加一个 1。这是我的 .aspx,但是当我尝试运行它时,在运行时出现“预期对象”异常......
编辑:我已经修改了我的示例以包含以下答案中提出的建议,但仍然存在问题。要重现,可以将此.aspx 代码复制到一个新的VS Web 应用程序项目的default.aspx 中,然后运行它并单击1 按钮;它应该将 1 附加到标签的值,但它会引发“预期对象”异常。
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="TestJavascript._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Table ID="baseTable" runat="server" HorizontalAlign="Center">
<asp:TableRow ID="labelRow" runat="server" HorizontalAlign="Center" Width="100" Height="30">
<asp:TableCell ID="labelCell" runat="server" HorizontalAlign="Center" Width="100%" Height="100%" BorderStyle="Solid" BorderWidth="1px">
<asp:Label ID="inputLbl" runat="server"/>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow ID="buttonRow" runat="server" HorizontalAlign="Center">
<asp:TableCell ID="buttonCell" runat="server" HorizontalAlign="Center">
<asp:Button ID="btn1" runat="server" Text="1" Height="70px" Width="70px" OnClientClick="btn1Click()"/>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
</div>
</form>
<script type="txt/javascript">
void btn1Click()
{
document.getElementById('<%= inputLbl.ClientID %>').value += "1";
return false;
}
</script>
</body>
</html>
任何帮助深表感谢!