Saya ingin mengetahui tombol karakter apa yang ditekan dengan cara yang kompatibel lintas-browser dalam Javascript murni.
event.key
akan langsung memberi Anda karakter yang ditekan
Saya ingin mengetahui tombol karakter apa yang ditekan dengan cara yang kompatibel lintas-browser dalam Javascript murni.
event.key
akan langsung memberi Anda karakter yang ditekan
Jawaban:
"Hapus" JavaScript:
<script type="text/javascript">
function myKeyPress(e){
var keynum;
if(window.event) { // IE
keynum = e.keyCode;
} else if(e.which){ // Netscape/Firefox/Opera
keynum = e.which;
}
alert(String.fromCharCode(keynum));
}
</script>
<form>
<input type="text" onkeypress="return myKeyPress(event)" />
</form>
JQuery:
$(document).keypress(function(event){
alert(String.fromCharCode(event.which));
});
keypress
acara, yang memberi Anda kode karakter, bukan keyup
atau keydown
yang memberi Anda kode kunci.
e.key
masih belum memiliki dukungan browser lengkap.
Ada jutaan duplikat dari pertanyaan ini di sini, tapi ini dia lagi:
document.onkeypress = function(evt) {
evt = evt || window.event;
var charCode = evt.keyCode || evt.which;
var charStr = String.fromCharCode(charCode);
alert(charStr);
};
Referensi terbaik tentang peristiwa penting yang pernah saya lihat adalah http://unixpapa.com/js/key.html .
Lebih baru dan lebih bersih: gunakan event.key
. Tidak ada lagi kode angka yang berubah-ubah!
CATATAN: Properti lama (
.keyCode
dan.which
) tidak digunakan lagi.
node.addEventListener('keydown', function(event) {
const key = event.key; // "a", "1", "Shift", etc.
});
Jika Anda ingin memastikan hanya satu karakter yang dimasukkan, centang key.length === 1
, atau itu adalah salah satu karakter yang Anda harapkan.
Mencoba:
<table>
<tr><td>Key:</td><td id="key"></td></tr>
<tr><td>Key Code:</td><td id="keyCode"></td></tr>
<tr><td>Event Code:</td><td id="eventCode"></td></tr>
</table>
<script type="text/javascript">
window.addEventListener("keydown", function (e) {
//tested in IE/Chrome/Firefox
document.getElementById("key").innerHTML = e.key;
document.getElementById("keyCode").innerHTML = e.keyCode;
document.getElementById("eventCode").innerHTML = e.code;
})
</script>
* Catatan: ini berfungsi di "Jalankan cuplikan kode"
Situs web ini melakukan hal yang sama seperti kode saya di atas: Keycode.info
**check this out**
<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$(document).keypress(function(e)
{
var keynum;
if(window.event)
{ // IE
keynum = e.keyCode;
}
else if(e.which)
{
// Netscape/Firefox/Opera
keynum = e.which;
}
alert(String.fromCharCode(keynum));
var unicode=e.keyCode? e.keyCode : e.charCode;
alert(unicode);
});
});
</script>
</head>
<body>
<input type="text"></input>
</body>
</html>
Salah satu perpustakaan favorit saya untuk melakukan ini dengan cara yang canggih adalah perangkap tikus .
Itu dilengkapi dengan berbagai plugin, salah satunya adalah record
plugin yang dapat mengidentifikasi urutan tombol yang ditekan.
Contoh:
<script>
function recordSequence() {
Mousetrap.record(function(sequence) {
// sequence is an array like ['ctrl+k', 'c']
alert('You pressed: ' + sequence.join(' '));
});
}
</script>
<button onclick="recordSequence()">Record</button>
document.onkeypress = function(event){
alert(event.key)
}