如何从文本框回车中停止IsPostBack?

时间:2012-10-09 17:02:02

标签: c# asp.net visual-studio-2010 textbox autopostback

我想停止从TextBox按下的回车键触发的IsPostBack。 textBox不能是多行的。

我正在尝试这个:

<asp:TextBox ID="kemetTextBox" runat="server" Width="215px">      
                </asp:TextBox>

                <script type="text/javascript">
                    $(document).ready(function () {
                        $("#kemetTextBox").keyup(function (e) {
                            if (e.keyCode == 13) {
                                Search();
                                return false;
                            }
                        });
                    });
                </script>

但它仍在重新加载页面。

数据:Visual Studio 2010,Asp.net,C#作为代码隐藏。

由于

2 个答案:

答案 0 :(得分:3)

只需像这样设置AutoPostBack="False"

<asp:TextBox ID="kemetTextBox" runat="server" Width="215px" AutoPostBack="False">

TextBox.AutoPostBack Property

  

使用AutoPostBack属性指定是否自动回发   当TextBox控件失去焦点时,将发生服务器。   在TextBox控件中按下ENTER或TAB键是   最常见的改变焦点的方法。


除此之外,你也可以这样做:

<asp:TextBox ID="kemetTextBox" runat="server" Width="215px" onkeydown="return (event.keyCode!=13);">

来源:Disable Enter key in TextBox to avoid postback in ASP.Net

答案 1 :(得分:1)

使用keyDown

代替KeyUp
<script type="text/javascript">
                    $(document).ready(function () {
                        $("#kemetTextBox").keydown(function (e) {
                            if (e.keyCode == 13) {
                                Search();
                                e.preventDefault();
                                return false;
                            }
                        });
                    });
                </script>