禁止回车提交
左直拳
回车提交真讨厌。
解决方法:
在<form>里屏蔽:
<form id="form1" runat="server" onkeypress="javascript:return NoSubmit(event);">
<script type="text/javascript">
function NoSubmit(ev)
{
if( ev.keyCode == 13 )
{
return false;
}
return true;
}
</script>
传说中的解决方法:
一、在<form>里指定defaultbutton,将其值赋以一个LinkButton的UniqueID。MSDN说:
使用 DefaultButton 属性可以指定用户可通过在窗体的输入控件(如文本框)中按 Enter 来引起回发。除了 LinkButton 控件之外,可以将从 IButtonControl 接口派生的任何控件指定为默认按钮。如果 DefaultButton 属性所引用的控件不是从 IButtonControl 派生的,则会引发 InvalidOperationException 异常。
如果使用母版页,并且从内容页中设置 DefaultButton 属性,请使用 IButtonControl 按钮的 UniqueID 属性。有关母版页的更多信息,请参见 ASP.NET 母版页概述。
在以下情况下,DefaultButton 属性可能不会引起回发:
· 当焦点在窗体中的输入控件外部时按下 Enter。默认的回发操作不一定会触发。
· 当焦点在多行文本框内部时按下 Enter。在多行文本框中,按下 Enter 通常会在文本框中创建一个新行。在某些浏览器中,在多行文本框内按 Enter 会触发回发。在这种情况下,如果希望改成按下 Enter 时创建新行,可向输入控件附加一个 JavaScript 函数。该脚本应捕获 Enter 键并停止回发。例如,可以使用 Attributes 属性集合添加 onKeyPress 事件的客户端脚本。
· 将 LinkButton 控件指定为默认按钮。只有 Button 和 ImageButton 控件是受支持的。
· 在异步回发过程中以编程方式更改 DefaultButton 属性。通过将一个或多个 UpdatePanel 控件添加到页中,可以在页上启用异步回发。有关更多信息,请参见 UpdatePanel 控件概述和部分页呈现概述。
二、将键盘码变成别的,类似
If( event.keyCode == 13) event.keyCode = 9 之类。