按钮OnClick事件未在窗体中使用一个文本框触发

时间:2011-02-15 20:06:45

标签: asp.net

我在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事件的行为与预期不符。

1 个答案:

答案 0 :(得分:4)

defaultButtonPanel的{​​{1}}属性用于确保输入密钥提交。通常人们习惯于输入密钥提交,如果它被禁用,某些时候可能会烦人。

当焦点在那里时,Form确实提供了一种处理页面各个部分的输入键的方法。

来源:multiple submit buttons and the enter key