javascript - Masalah dengan kotak teks acara onblur dicetuskan secara berterusan
漂亮男人
漂亮男人 2017-05-19 10:13:27
0
2
1128

text tag onblur="alert()"
Alert() dicetuskan apabila kotak teks kehilangan kursor
Tetapi apabila tetikus memilih teks ini, dan kemudian tetikus meninggalkan keseluruhan tetingkap penyemak imbas (seperti mengklik pada desktop) , peristiwa amaran() dicetuskan
Sekarang inilah masalahnya:
Selepas mengembalikan tetikus ke penyemak imbas dan mengklik butang pop timbul "OK", tetingkap timbul terus muncul...
Apa yang sepatutnya Saya buat?

漂亮男人
漂亮男人

membalas semua(2)
刘奇

Ini tidak akan berlaku, sila hantar kod anda.


Supplement

Kalau boleh jawab mesti dah cuba takde masalah kod di bawah

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

Telah diuji pada IE11, Firefox, Chrome


Supplement

Situasi yang diterangkan memang wujud Mari kita fikirkan sebabnya:

Selepas bertukar kembali, tetingkap hilang fokus Apabila ia kembali, kotak teks secara automatik mendapat fokus, jadi ia berterusan, dengan itu mencetuskan secara berterusan.

Masalah sebegini sebenarnya sepatutnya kurang kerap berlaku semasa penggunaan. Satu penyelesaian adalah untuk membuat kotak teks hilang fokus apabila tetingkap kehilangan fokus seperti berikut:

Masalah teruji selesai

<!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>
黄舟

Saya baru sahaja mencubanya, dan ia memang wujud Namun, jika anda menukar amaran kepada sesuatu yang lain (seperti console.log), kabur tidak akan dicetuskan berulang kali, dalam keadaan biasa, amaran tidak boleh digunakan, jadi masalah ini sepatutnya tidak dapat diselesaikan. Ia tidak akan memberi kesan yang besar. Mengenai mengapa ini berlaku, saya tidak tahu~~

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan