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