Asp.net 按钮OnClick事件未在表单中使用一个文本框触发

Asp.net 按钮OnClick事件未在表单中使用一个文本框触发,asp.net,Asp.net,我在IE中遇到了一个非常奇怪的ASP.NET onclick事件(其他浏览器似乎没有这个问题)。当表单中只有一个textbox字段时,当您输入文本并点击enter/Return时,onclick事件不会触发。当您单击“实际提交”按钮时,事件将触发。当表单中有两个或多个字段时,按Enter/Return就可以了 这很奇怪。我以为是我的IE出了问题,但检查了其他机器,发现它们都有同样的问题 我将这个非常简单的页面设置为一个测试: <%@ Page Language="C#" %> &l

我在IE中遇到了一个非常奇怪的ASP.NET onclick事件(其他浏览器似乎没有这个问题)。当表单中只有一个textbox字段时,当您输入文本并点击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>

受保护的void btnsupmit\u单击(对象发送者,事件参数e)
{
响应。写入(((按钮)发送者)。文本);
}

当删除其中一个文本框时,
btnsupmit\u Click
事件的行为与预期不符。

使用
面板
表单
defaultButton
属性来确保输入密钥提交。通常人们习惯于输入密钥提交,如果它被禁用,在某些时候可能会让人恼火


defaultButton
确实提供了一种方法,可以在焦点出现时为页面的各个部分处理回车键


来源:

使用
面板
表单
默认按钮
属性来确保输入密钥提交。通常人们习惯于输入密钥提交,如果它被禁用,在某些时候可能会让人恼火


defaultButton
确实提供了一种方法,可以在焦点出现时为页面的各个部分处理回车键


来源:

哪个框架版本?我刚刚用IE8确认了vs2008中的行为。没有错误。回发发生,但是页面似乎只是重新加载。此外,尽管事件处理程序没有执行,IsPostBack变量被设置为true。哪个框架版本?我刚刚用IE8确认了vs2008中的行为。没有错误。回发发生,但是页面似乎只是重新加载。此外,尽管事件处理程序不执行,但IsPostBack变量设置为true。设置defaultButton可更正此问题。虽然我无法理解为什么当页面上存在多个文本框控件时它能工作,但当只有一个控件时它却不能工作。谢谢!你救了我一天!我以前从未使用过defaultButton属性-我今天学到的新东西!看起来添加
defaultButton
属性会添加JS,该JS会对字段关注的表单的按钮执行单击事件@克里斯,是的,非常奇怪的是,在多个文本框中,enter键不需要设置
defaultButton
属性就可以工作。同样奇怪的是,这种行为只出现在IE中。它有完全相同的问题,
defaultButton
完美地解决了这个问题。这意味着我必须不必要地向客户发送一个额外的div元素,但我认为这是一个公平的交易。干杯设置defaultButton可更正此问题。虽然我无法理解为什么当页面上存在多个文本框控件时它能工作,但当只有一个控件时它却不能工作。谢谢!你救了我一天!我以前从未使用过defaultButton属性-我今天学到的新东西!看起来添加
defaultButton
属性会添加JS,该JS会对字段关注的表单的按钮执行单击事件@克里斯,是的,非常奇怪的是,在多个文本框中,enter键不需要设置
defaultButton
属性就可以工作。同样奇怪的是,这种行为只出现在IE中。它有完全相同的问题,
defaultButton
完美地解决了这个问题。这意味着我必须不必要地向客户发送一个额外的div元素,但我认为这是一个公平的交易。干杯