0

その1つのテキストボックスと2つのasp.netボタン(保存、終了)に1つのモデルポップアップエクステンダーがあり、テキストボックスにonblurイベントを書きました(そのイベントでテキストボックスに入力された値はデータベースが有効かどうかを確認し、無効な場合はアラートメッセージを表示します)その条件は機能していますが、[終了] ボタンをクリックすると、onclick または onclientclik イベントが動作します (modelpopup コードを閉じます) が、テキスト ボックスのぼかしイベントの検証が発生し、アラート メッセージが表示されます。その問題を解決する方法について教えてください。それ。私のコードは

<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>
4

1 に答える 1

1

TextBoxがフォーカスを失うとすぐにonblurが呼び出されるため、コードは期待どおりに機能しています。CheckUserId()TextBox 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>
于 2012-04-18T13:40:30.960 に答える