深层次来说这不是 ASPNET 的问题 而是 html form 的 submit 按钮就是如何设计的
当你的光标焦点进入某个表单元素的时候会激活该表单中第一个(流布局顺从左到右从上至下) type=submit 的按钮(假如有)等待响应回车事件并提交该form
你可以测试一下代码
<form action=>
<input type=text />
<input type=submit value=submit />
</form>
<form action=>
<input type=text />
<input type=button value=submit />
</form>
在 ASPNET 中 button 默认呈现为 <input type=submit> 此时不要额外脚本提交form submit 按钮就是设计用来提交form
而在 x 中则呈现为 <input type=button onclick=_doPostBack() /> 此普通 button 不具备 submit 的上述默认行为
禁用此默认行为有法二
设置 form 元素的 defualtButton 为你希望响应回车的真正按钮如下
<form id=form runat=server defaultbutton=Button>
注意 defaultButton = < <TargetButtonID>> 因此这对复合控件中比如模板的 Button 可能无效(未测试)
修改 button 呈现方式 UseSubmitBehavior=false
<asp:Button ID=Button runat=server Text=Button onclick=Button_Click UseSubmitBehavior=false />
(csdn 晓风残月)
另外可以通过控制焦点的方式过滤回车实践需要记录一笔的是获取当前页面焦点所在控件的ID
documentactiveElement
对于AspNet我们在TextBox中输入内容后按下enter键后就执行Button的click方法那么在page_load事件方法中写
TextBoxAttributesAdd(onkeydown if(eventwhich || eventkeyCode){if ((eventwhich == ) || (eventkeyCode == )) {documentgetElementById(+ButtonUniqueID+)click();return false;}} else {return true}; );