搜尋

首頁  >  問答  >  主體

javascript - 文字方塊onblur事件連續觸發的問題

text標籤onblur="alert()"
文字方塊失去遊標的時候觸發alert();
但是當滑鼠選取此text,然後滑鼠離開整個瀏覽器視窗(例如點擊下桌面),這樣觸發alert()事件
現在問題來了:
滑鼠回到瀏覽器點擊彈出的"確定"按鈕後,彈窗繼續彈出...
怎麼搞?

漂亮男人漂亮男人2770 天前1050

全部回覆(2)我來回復

  • 怪我咯

    怪我咯2017-05-19 10:15:27

    不會出現這個狀況的,貼出你的程式碼。


    補充

    我能回答就肯定試過的啦下面程式碼就沒有問題

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <input type="text" onblur="alert();">
    </body>
    </html>

    已經測試IE11 、 Firefox 、Chrome


    補充

    所描述的情況確實存在,想了下原因:

    切回去後視窗失去了焦點,再回來的時候,文字方塊又自動獲取了焦點 所以一直繼續,從而不斷觸發。

    這種問題實際上在使用的時候出現情況應該比較少。 一種解決方案是在視窗失去焦點的時候讓文字方塊也失去焦點如下:

    已測問題解決

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <input type="text" onblur="alert();">
        <script>
            window.onblur=function(){
                document.getElementsByTagName('input')[0].blur();
            }
        </script>
    </body>
    </html>

    回覆
    0
  • 黄舟

    黄舟2017-05-19 10:15:27

    剛剛試了下,確實有這個現象,但是把alert改成其他的(比如console.log)就不會出現反复觸發blur 的情況,一般情況下應該也不會用到alert,所以這個問題應該也不會有很大影響。至於為什麼會出現這種情況,我也不清楚~~

    回覆
    0
  • 取消回覆