当我单击 asp.net 中的退出按钮时,文本框模糊事件未触发

textbox onblur event not fired when i click the exit button in asp.net

本文关键字:文本 模糊 事件 按钮 asp 单击 net 退出      更新时间:2023-09-26

我有一个模型弹出窗口扩展器,在该文本框和两个 asp.net 按钮(保存,退出),文本框我编写了onblur事件(在该事件文本框输入的值检查数据库是否有效,无效显示警报消息)现在该条件有效,但是当我单击退出按钮时,我已经处理了onclick或onclientclik事件(关闭模型弹出代码),但现在触发文本框模糊事件验证并显示警报消息,如何爱这个问题,请给我任何想法。我的代码是

<asp:TextBox ID="txtForgotUserId" runat="server" ClientIDMode="Static" onblur="CheckUserId()"></asp:TextBox>
<asp:Button ID="btnForgotExit" runat="server" Text="Exit" CssClass="art-button" ClientIDMode="Static" OnClientClick="hidepop()"/>
<script type="text/javascript">
    function hidepop() {
        $find('MpForgot').hide();
        return true;
    }
    function CheckUserId() {
        document.getElementById('btnCheckUserId').click();
    }
</script>

代码按预期工作,因为一旦文本框失去焦点,就会调用 onblur。我建议在不同的点调用CheckUserId() - 也许在单击按钮时 - 而不是模糊的文本框。

如果必须在 onblur 期间调用CheckUserId(),则可以使用如下计时器:

<asp:TextBox ID="txtForgotUserId" runat="server" 
    ClientIDMode="Static" onblur="startCheckUserIdTimer()"></asp:TextBox>
<asp:Button ID="btnForgotExit" runat="server" Text="Exit" 
    CssClass="art-button" ClientIDMode="Static" OnClientClick="hidepop()"/>
<script type="text/javascript">
    var timer;
    function hidepop() {
        clearTimeout(timer);
        $find('MpForgot').hide();
    }
    function startCheckUserIdTimer() {
        clearTimeout(timer);
        timer = setTimeout("CheckUserId()", 100);
    }
    function CheckUserId() {
        clearTimeout(timer);
        document.getElementById('btnCheckUserId').click();
    }
</script>