Bunun kolay bir yol olduğuna inanıyorum, ancak google'da birkaç saat aradıktan sonra herhangi bir cevap bulamadım (belki de doğru kelimeleri kullanamadım) arama :-P)Giriş metninde "post accent" ifadesinin nasıl önleneceği
Ben aşağıdaki kodu görülebileceği gibi, sayılar dışındaki karakterler ile metin kutusu doldurmak için engeller bir javascript yöntemi var ve bu KeyDown olayı kullanılır:
function checkNumberInput(e) {
// Allow: backspace, delete, tab, escape, enter and .
if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110]) !== -1 ||
// Allow: Ctrl+A, Command+A
(e.keyCode == 65 && (e.ctrlKey === true || e.metaKey === true)) ||
// Allow: home, end, left, right, down, up
(e.keyCode >= 35 && e.keyCode <= 40)) {
// let it happen, don't do anything
return;
}
// Ensure that it is a number and stop the keypress
if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
e.preventDefault();
}
}
Sorun, kullanıcı ikinci bir tuşa "bekleten" (~ ´`^gibi) aksanlı karakterler yazıyorsa, hemen sonra bir sayı yazıldığında metin kutusunda görünür. Örneğin
:
a) types 1 => [1________]
b) types ~ => [1________]
c) types 3 => [1~3______]
nasıl bu oluyor engelleyebilirim? Şimdiden teşekkürler.
ne de keyUp olay eklemek olur? –
keyUp olayının sonunda, sayısal olmayan karakterler için girdinin 'value' özelliğini tarayabilir ve bulursanız bunları kaldırabilirsiniz; Belki de setTimeout() işlevini kullanarak, 'değer' özelliğinin kontrolünü tuşlayarak birkaç milisaniye çalıştırırsınız ... –
@ Al.G kullanılır. yöntem keyUp ile ittifak etti ve hile yaptı. \t \t "Yazma silme" efektini kaldırmak istedim, ancak bunun imkansız olduğunu düşünüyorum. Yardımlarınız için hepinize teşekkür ederim! – thiagoprzy