我在IE中遇到了一个非常奇怪的ASP.NET onclick事件(其他浏览器似乎没有这个问题)。如果表单中只有一个文本框字段,则在输入文本并按Enter / Return时不会触发onclick事件。单击实际提交按钮时会触发该事件。当表单中有两个或多个字段时,点击Enter / Return就可以了。
这很奇怪。认为这是我的IE浏览器,但检查了其他机器,他们每个人都有同样的问题。
我将这个非常简单的页面设置为测试:
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void btnSubmit_Click(object sender, EventArgs e)
{
Response.Write(((Button)sender).Text);
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtBox1" runat="server"></asp:TextBox>
<asp:TextBox ID="txtBox2" runat="server" ></asp:TextBox>
<asp:Button ID="btnSubmit" OnClick="btnSubmit_Click" Text="Submit" runat="server" />
</div>
</form>
</body>
</html>
删除其中一个文本框后,btnSubmit_Click
事件的行为与预期不符。
答案 0 :(得分:4)
defaultButton
或Panel
的{{1}}属性用于确保输入密钥提交。通常人们习惯于输入密钥提交,如果它被禁用,某些时候可能会烦人。
当焦点在那里时,Form
确实提供了一种处理页面各个部分的输入键的方法。