実現したいこと
・クライアント側はASP.net、サーバー側はC#で実装しています。
やりたいことは、
1.画面に登録ボタンを作成する。
2.ボタンを押下すると、「処理を続行しますか?」のダイアログが表示する。
3.ダイアログには、「はい」「いいえ」のボタンを付ける。
4.「はい」を押すと処理を継続し、「いいえ」を押すと処理を終了する。
該当のソースコード
実際に書いてみたソースコードです。
asp.net
1<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %> 2 3<!DOCTYPE html> 4 5<html xmlns="http://www.w3.org/1999/xhtml"> 6<head runat="server"> 7<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 8 <title></title> 9</head> 10<body> 11 <form id="form1" runat="server"> 12 <div id="div1" runat="server"> 13 <asp:TextBox ID="tbInputData" runat="server" onchange="toggleButton();" /> 14 <br /> 15 <asp:Button ID="btnRegister" runat="server" Text="登録" OnClientClick="return showDialog();" OnClick="btnRegister_Click" /> 16 </div> 17 18 <div id="div2" runat="server"> 19 <asp:Label ID="lblMsg" runat="server" Text="" /> 20 </div> 21 </form> 22 23 <script> 24 function toggleButton() { 25 var tbInputData = document.getElementById('tbInputData'); 26 var btnRegister = document.getElementById('btnRegister'); 27 28 if (tbInputData.value !== '') { 29 btnRegister.disabled = false; 30 } 31 else { 32 btnRegister.disabled = true; 33 } 34 } 35 36 function showDialog() { 37 var result = confirm("処理を続行しますか?"); 38 if (result) { 39 // 「はい」が押された場合はポストバックを許可する 40 return true; 41 } else { 42 // 「いいえ」が押された場合はポストバックをキャンセルする 43 return false; 44 } 45 } 46 </script> 47 48</body> 49</html>
c#
1using System; 2using System.Diagnostics; 3 4namespace WebApplication1 5{ 6 public partial class WebForm1 : System.Web.UI.Page 7 { 8 protected void Page_Load(object sender, EventArgs e) 9 { 10 btnRegister.Enabled = !string.IsNullOrEmpty(tbInputData.Text); 11 } 12 13 protected void btnRegister_Click(object sender, EventArgs e) 14 { 15 Debug.WriteLine("★ 登録ボタンが押された!"); 16 17 if (string.IsNullOrEmpty(tbInputData.Text)) 18 { 19 return; 20 } 21 else 22 { 23 lblMsg.Text = "★★ 入力済!"; 24 return; 25 } 26 } 27 } 28}
※実際に動かすと、こうなっています。(登録ボタンを2回押さないと、ダイアログが表示されない)
IEのキャッシュをクリアしても結果は同じでした。どこが間違っているのか教えていただけませんか?
補足情報(FW/ツールのバージョンなど)
・Visual Stadio 2019 (ASP.NET Webアプリケーション .NET Framework)
・.NET Framework 4.7
・Windows10
・Microsoft edge (Internet Explorer モード (IE モード) で表示)

回答2件
あなたの回答
tips
プレビュー