在ASPX中回发后,keypress无法正常工作

时间:2011-04-15 23:00:03

标签: jquery asp.net jquery-ui jquery-selectors textbox

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

然而,在我回发并按下文本框内的任何键后,我的图像不会消失。感谢您的任何建议。

   <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 个答案:

答案 0 :(得分:3)

您需要在每次更新时重新初始化它。您可以通过从更新面板捕获事件来实现此目的。

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();
              });
}