Rumah  >  Artikel  >  hujung hadapan web  >  Kaedah Javascript untuk mengawal format masa input_kemahiran javascript

Kaedah Javascript untuk mengawal format masa input_kemahiran javascript

WBOY
WBOYasal
2016-05-16 16:17:301648semak imbas

Contoh dalam artikel ini menerangkan kaedah Javascript mengawal format masa input. Kongsikan dengan semua orang untuk rujukan anda. Analisis khusus adalah seperti berikut:

Saya membuat input format masa kawalan Javascript sebelum ini, terutamanya menggunakan acara keydown dan keyup, tetapi saya merasakan penulisannya sangat rumit dan terdapat pepijat.

Hari ini saya belajar tentang perbezaan antara acara penekan kekunci, kekunci dan kekunci. Kira-kira seperti berikut (saya hanya tahu setakat ini):

keydown: Dicetuskan apabila kekunci ditekan Kod kekunci boleh diperolehi melalui acara, dan nilai sebelum kotak teks dimasukkan boleh diperolehi

keyup: Dicetuskan apabila kunci muncul (dilepaskan Kod kunci boleh diperolehi melalui acara, dan nilai selepas input ke dalam kotak teks boleh diperolehi;

tekan kekunci:

Acara ini pada asasnya sama dalam Chrome dan IE, tetapi Firefox sedikit berbeza; 1. Dalam Chrome dan IE: Selagi kekunci yang ditekan boleh muncul aksara dalam kotak teks, ia akan dicetuskan (seperti memasukkan huruf, nombor, simbol, dsb.). dan event.key tidak ditentukan; Aksara yang tidak boleh muncul tidak akan dicetuskan (seperti kekunci anak panah, Laman Utama, Ruang Belakang, dll.)

2. Dalam Firefox: huruf, nombor, simbol, arah, ruang belakang dan kekunci lain boleh dicetuskan, dan nama kunci boleh diperolehi melalui kekunci acara Jika kekunci yang ditekan boleh mengeluarkan aksara, kod kunci ialah 0. Jika aksara tidak boleh dikeluarkan, event.keyCode ialah kod ASCII yang sepadan

Kembali kepada topik, mari lihat kod secara langsung (peristiwa yang dinyatakan di atas adalah bersamaan dengan e dalam kod di bawah):

Salin kod Kod adalah seperti berikut:var isFF = /firefox/i.test(navigator. agen pengguna); $("input").on({
Kekunci : fungsi (e) {
​ ​ !/^[d:] $/.test(e.target.value) && (e.target.value = "");
},
Tekan kekunci : fungsi (e) {
Jika (isFF && e.keyCode !== 0) {
/// Menekan sebarang kekunci dalam Firefox akan mencetuskan peristiwa penekan kekunci, manakala dalam IE/Chrome hanya menekan kekunci yang boleh mengeluarkan aksara akan mencetuskan
                           /// Untuk Firefox, e.keyCode!==0 bermaksud salah satu kekunci ruang belakang, arah, rumah, dsb. ditekan
         } lain {
Jika (e.target.value.length > 7)
                       pulangan palsu;
Jika (/d{2}$/.test(e.target.value)) {
                     e.target.value = ':';
            }
            var char = String.fromCharCode(e.keyCode === 0 ? e.which : e.keyCode);
Jika (!/^d/.test(char))
                       pulangan palsu;
}
}
});


Gunakan isFF && e.keyCode !== 0 untuk membezakan kekunci yang boleh mengeluarkan aksara dalam Firefox dan kekunci yang tidak boleh mengeluarkan aksara Memandangkan e.keyCode dalam Firefox mungkin tidak boleh mendapatkan nilai, e.iaitu digunakan sebaliknya.
keyup digunakan untuk menyelesaikan masalah boleh memasukkan bahasa Cina atau huruf apabila menggunakan kaedah input.

Dapatkan aksara yang sepadan dengan kod ASCII melalui String.fromCharCode().

Saya harap artikel ini akan membantu reka bentuk pengaturcaraan JavaScript semua orang.

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn