在asp.net頁面中在文本框、按鈕等服務器控件上回車都會導致頁面回發,網上很多解決方案是使用JS來進行event.keyCode==13判斷是否按下的回車鍵,如果是就event.returnValue = false; 但是這只能適用於IE,有些瀏覽器是不支持event.keyCode的,例如:火狐就是使用evt.which。
這里給大家一個方案,使用后感覺還行,如果有問題請多多包涵,給出建議:
頁面代碼:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!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></title> </head> <body> <form id="form1" runat="server" defaultbutton="Button1"> <div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="Button" Enabled="False" style=" display:none" /> <br /> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> <asp:Button ID="Button2" runat="server" Text="Button" /> </div> </form> </body> </html>
1、先給頁面的表單設置DefaultButton(這里設置的是Button1)。
作用:回車時會以該按鈕被點擊來提交表單進行回發。
2、為Button1設置Enabled="False"
作用:回車后發現Button1不能使用,所以這次提交也就不能成功了
3、如果不想看到這個Button1,就加上樣式style=" display:none"進行隱藏
注意:不能通過按鈕的Visible來設置隱藏,因為這樣隱藏回車還是會回發