Enter tuşuna izin verme
<textarea>
Formunuzda bir tane yoksa , aşağıdakileri ekleyin <form>
:
<form ... onkeydown="return event.key != 'Enter';">
Veya jQuery ile:
$(document).on("keydown", "form", function(event) {
return event.key != "Enter";
});
Bu form içinde her tuşa basın üzerinde kontrol edileceğini neden olacaktır key
. Değilse Enter
, geri döner true
ve her şey her zamanki gibi devam eder. Eğer öyleyse, Enter
o zaman geri döner false
ve her şey hemen durur, böylece form gönderilmez.
keydown
Olay yerine tercih edilebilir keyup
olarak keyup
çok geç blok formuna göndermektir. Tarihsel olarak da vardı keypress
, ama bu olduğu gibi, reddedildi KeyboardEvent.keyCode
. Bunun KeyboardEvent.key
yerine, basılan tuşun adını döndüren anahtarını kullanmalısınız. Ne zamanEnter
kontrol edilir, sonra bu 13 (normal girin) kontrol yanı 108 olarak (sayısal tuş takımı girin) olacaktır.
O Not $(window)
yerine diğer bazı cevaplar önerildiği üzere bir $(document)
çalışmıyor keydown
/ 'keyup
Eğer sıra bu fakir kullanıcıları kapsayacak şekilde gibisin eğer öyleyse bu en iyi bir seçimdir, IE <= 8'de.
Yalnızca textareas'ta anahtar girmeye izin ver
<textarea>
Formunuzda bir varsa (elbette Enter tuşunu kabul etmesi gerekir ), o zaman a olmayan her giriş elemanına tuş takımı işleyicisini ekleyin <textarea>
.
<input ... onkeydown="return event.key != 'Enter';">
<select ... onkeydown="return event.key != 'Enter';">
...
Isıcam plakasını azaltmak için jQuery ile yapılması daha iyidir:
$(document).on("keydown", ":input:not(textarea)", function(event) {
return event.key != "Enter";
});
Herhangi bir nedenle enter tuşuna çağırmak istediğiniz bu giriş öğelerine eklenmiş başka olay işleyicisi işlevleriniz varsa, yalnızca yanlış döndürmek yerine etkinliğin varsayılan davranışını önleyin, böylece diğer işleyicilere düzgün şekilde yayılabilir.
$(document).on("keydown", ":input:not(textarea)", function(event) {
if (event.key == "Enter") {
event.preventDefault();
}
});
Textareas'ta enter tuşuna izin ver ve yalnızca düğmeleri gönder
Gönderme düğmelerinde <input|button type="submit">
de enter tuşuna izin vermek isterseniz, seçiciyi her zaman aşağıdaki gibi hassaslaştırabilirsiniz.
$(document).on("keydown", ":input:not(textarea):not(:submit)", function(event) {
// ...
});
O Not input[type=text]
diğer bazı cevaplar önerildiği şekilde o en iyi bir seçici, bu HTML5 metin olmayan girdileri kapsamaz.