| 【3/3】
次に2つめの対策方法。
Webフォームのボタンを使うと<input type="submit">になってしまうので、
HTMLのボタンの方を使ったら、<input type="button">として描画されるために
テキストボックスでEnterを押したときの送信自体が行われなくなる、と考えたのですが…
<WebForm1.aspx>
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="WebTest.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script language="vbscript">
<!--
Sub Button1_OnClick
If MsgBox("おや ? 不思議 ! !", vbYesNo + vbDefaultButton2, "確認") = vbNo Then
Form1.TextBox1.value = "No"
Else
Form1.TextBox1.value = "Yes"
End If
End Sub
-->
</script>
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox><br>
<INPUT id="Button1" type="button" value="Button" name="Button1" runat="server"><br>
<asp:Label id="Label1" runat="server">Label</asp:Label>
<input type="text" style="display:none">
</form>
</body>
</HTML>
<WebForm1.aspx.vb(自動生成部除く)>
Private Sub Button1_ServerClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ServerClick
If TextBox1.Text = "No" Then
Label1.Text = "…"
Else
Label1.Text = "成功"
End If
End Sub
動かしてみたらダイアログが出る前に<input>タグに自動で埋め込まれた__doPostBackが走ってしまい、
期待した動作になりませんでした。これじゃ対策方法とは言えませんね。
すみません。少し先走りました。 |