1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 2 3 <!DOCTYPE html> 4 5 <html xmlns="http://www.w3.org/1999/xhtml"> 6 <head runat="server"> 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 8 <title></title> 9 </head> 10 <body> 11 <form id="form1" runat="server"> 12 <div> 13 14 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 15 <br /> 16 <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" /> 17 18 </div> 19 </form> 20 </body> 21 </html>
后端:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if(IsPostBack) { // } else { // } } protected void Button1_Click(object sender, EventArgs e) { this.TextBox1.Text = "我按了Buttion"; } }
不知道为什么google浏览器里,我会触发buttion点击事件。。。。。
除了IE兼容模式,其他都会,如果IE不设置localhost到兼容模式列表,也会发生这个事件。
首先,你这是个form,form里面的按钮一般为submit按钮,textbox不存在换行,所以你按回车基本上是触发了submit事件,也就是你button的onclick事件,类似于百度的搜索框一样。
你要是不想回车触发按钮可以将你的button放到form外。
这就尴尬了,我的textbox是在GridView行里面,整个页面又是集成了模板页的。这个button其实是分页按钮,还有一些其他按钮,估计都会被触发onclick……
我这个textbox其实回车有指定js函数,只是不希望他刷新页面然后执行页面的其他button的onclick事件。
业务场景:
一个列表,用户在输入框里输入数量后,其他列会获取用户输入的数量进行库存数量检查,商品的最新单价显示等功能。
我这个textbox其实回车有指定js函数,只是不希望他刷新页面然后执行页面的其他button的onclick事件。
其他页面的button事件,我可以理解为你写了一个通用的刷新按钮,然后当前页面刷新后会导致其他页面的也会刷新是吗?
@柿子Boy: 是的,这些按钮都是针对GV的通用按钮。有分页数量,有排序等
试下其他浏览器呢,如果它们没有触发buttion点击事件,那应该就是Google做的优化,为了提高用户体验(例如:回车时自动搜索)
除了IE兼容模式,其他都会,如果IE不设置localhost到兼容模式列表,也会发生这个事件。
@Anson.Mao: 查看了下生成的html代码,<asp:Button ID="Button3" runat="server" Text="Button" OnClick="Button3_Click" />,最终会生成如下代码:
<input type="submit" name="ctl00$MainContent$Button3" value="Button" id="MainContent_Button3">,为submit按钮,回车时会触发
@大志若愚: 我用的是asp:ImageButton
生成的html代码里的type是image~~~
不为什么,就是http 包中url参数部分映射到成员函数而已。
客户端要么是表单要么是js来发起 http包请求。
而客户端对待请求的是有差异的。
—— 上面的是asp:Button只是告诉这个是服务器控件,最终取决于其渲染的html文档(集合)和客户端。
那请教下如何不让textbox按回车后,不会执行button事件?但是要保证button事件能正常用。
onsubmit="return false;" 这个方法让按钮也无法正常使用了,很尴尬~