ASP.NET に C# コード ビハインドを含む Web アプリがあります。メインのログイン ページには、ピン番号を入力するための 0 ~ 9 のボタンがある一種のタッチパッド タイプの UI があります。
したがって、私は ASP.NET と JavaScript の両方を初めて使用します。これらの数値ボタンが UI でクリックされた場合、サーバー側で何もする必要はありません。ポストバックはまったくありません。必要なのは、ラベルのテキストに番号を追加することだけです。ボタンが何らかのポストバックを引き起こすことなく、JavaScriptでそれを行う方法を理解しようとしています。
例をもっと簡単にするために、画面上に 1 つのラベルと 1 つのボタンを持つ UI があり、この 1 つのボタンをクリックするたびに、ラベルのテキストに 1 を追加する必要があるとしましょう。これが私の.aspxですが、これを実行しようとすると、実行時に「オブジェクトが必要です」という例外が発生します...
編集:以下の回答で行われた提案を含めるように例を変更しましたが、まだ問題があります。再現するには、この .aspx コードを新しい VS Web アプリケーション プロジェクトの default.aspx にコピーして実行し、[1] ボタンをクリックします。ラベルの値に 1 を追加する必要がありますが、"Object Expected" 例外がスローされます。
<%@ 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>
どんな助けでも大歓迎です!