在 ASPX 中回发后按键不起作用

Posted

技术标签:

【中文标题】在 ASPX 中回发后按键不起作用【英文标题】:keypress not working after postback in ASPX 【发布时间】:2011-08-06 16:33:32 【问题描述】:

我在 ASPX 页面中的文本框旁边有一个图像。我在 VS2010 中开发一个使用 jquery 的网络表单。在我点击页面上的按钮之前,一旦我按下任意键并且当我在文本框内时,我的图像就会消失。所以在发回之前一切正常。

但是,在我回发并在文本框中按任意键后,我的图像并没有消失。感谢您的任何建议。

   <script type="text/javascript">

   $(document).ready(function () 
             $('#tbPassword').keypress(function () 
                 $('#imgPassword').hide();
              );
   );

   </script>

   <tr>
                        <td class="style53">
                            <asp:UpdatePanel ID="uppPassword" 
                                             runat="server">
                            <ContentTemplate>
                                <asp:TextBox ID="tbPassword" 
                                             runat="server" 
                                             TextMode="Password" 
                                             Width="200px">
                                 </asp:TextBox>&nbsp;&nbsp
                            <asp:Label ID="lblPWCharacters" 
                                       runat="server" 
                                       CssClass="Label8g" 
                                       Text="(at least 6 characters)">
                            </asp:Label>
                            </ContentTemplate>
                            <Triggers>
                                <asp:AsyncPostBackTrigger       ControlID="btnSignUp"

                              EventName="Click" />
                            </Triggers>
                            </asp:UpdatePanel></td>
                        <td align="left" class="style52" valign="baseline">
                            <img id="imgPassword" src="../Images/Red-Error-con.png" /></td>
                    </tr> <td class="style53"><asp:Button ID="btnSignUp" 
                                                        runat="server" 
                                                                                                                                                   Text="Sign up"
                                                        Width="88px"  
                                                        TabIndex="2000" 
                                                        OnClientClick="validateText()"/>
                            </td>
                        <td class="style52">
                            &nbsp;</td>

   function validateText() 

   //not null password 
            if ($("#tbPassword").val()) 
                passwordValid();
            
   

【问题讨论】:

【参考方案1】:

您需要在每次更新时重新初始化它。您可以通过从更新面板捕获事件来做到这一点。

var prm = Sys.WebForms.PageRequestManager.getInstance();    
prm.add_initializeRequest(InitializeRequest);
prm.add_endRequest(EndRequest);

function InitializeRequest(sender, args)       


function EndRequest(sender, args) 
            $('#tbPassword').keypress(function () 
                 $('#imgPassword').hide();
              );

【讨论】:

以上是关于在 ASPX 中回发后按键不起作用的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 验证插件。回发后errorLabelContainer不起作用

回发后jquery datepicker不起作用

RegisterClientScriptCode 在部分回发后不起作用

从 UpdatePanel 异步回发后,嵌入式 javascript 不起作用

回发后,我的 JavaScript 函数在 ASP.NET 中不起作用

回发后多日期选择器不起作用