在web页面中我们会碰到这样一种情况,如:
<form id="form1" runat="server" >
<div>
<textarea id="TextArea1" cols="20" rows="2"></textarea>
<input id="Text1" type="text" />
</div>
</form>
当我们在Text1中敲回车的时候,会出现form1被提交到后台服务器。有些时候,这种情况我们是不想出现的。
所以我们给form添加onkeypress事件 <form id="form1" runat="server" onkeypress="if(event.keyCode==13||event.which==13){return false;}" >,此时当我们再在Text1中敲回车发现不会被提交,但是出现了另外一种情况,在TextArea1中敲回车不能换行了,这也是我们不希望看到的情况。解决方法如下,
<script src="jquery-1.4.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function (){$("textarea").keypress(function(event){event.stopPropagation(); })});
</script>
说明需要引入jquery,此时再去敲回车在Text1和TextArea1中,会发现在Text1中敲回车不会提交form,在TextArea1敲回车可以换行。
整个代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<script src="jquery-1.4.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function (){$("textarea").keypress(function(event){event.stopPropagation(); })});
</script>
</head>
<body>
<form id="form1" runat="server" onkeypress="if(event.keyCode==13||event.which==13){return false;}">
<div>
<textarea id="TextArea1" cols="20" rows="2"></textarea>
<input id="Text1" type="text" />
</div>
</form>
</body>
</html>