2013-02-11 11 views
9

Znalazłem kilka instrukcji podobnych, ale żadna z nich nie pomaga, wszystkie są dla specjalnych znaków lub cyfr.Wyłącz niektóre znaki z pola wejściowego

trzeba wprowadzić typ użytkownika tylko 1, 2, 3, 4, 5, N, O, A, B, C. wszystkie pozostałe postacie powinny być ograniczone.

Każdy sposób mogę zrobić własny wybór ograniczane/dozwolonych znaków dla wejść?

  • Niezbyt dobrze zna javascript.
+3

'wszystkie z nich są zarówno dla znaków specjalnych lub digits.' nie można po prostu zmodyfikować kod, a nie tylko ślepo kopiować i wkleić? – nhahtdh

+0

użycie http://archive.plugins.jquery.com/project/limitkeypress – DON

+0

nowy link limitkeypress http://brianjaeger.com/process.php –

Odpowiedz

9

Spróbuj

$(function(){ 
 
    $('#txt').keypress(function(e){ 
 
    if(e.which == 97 || e.which == 98 || e.which == 99 || e.which == 110 || e.which == 111 || e.which == 65 || e.which == 66 || e.which == 67 || e.which == 78 || e.which == 79 || e.which == 49 || e.which == 50 || e.which == 51 || e.which == 52 || e.which == 53){ 
 
    } else { 
 
     return false; 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type='text' id='txt' value='' onpaste="return false" />

Aktualizacja 09 marca 2018

$(function(){ 
 
    $('#txt').keypress(function(e){ 
 
    // allowed char: 1 , 2 , 3, 4, 5, N, O, A, B, C 
 
    let allow_char = [97,98,99,110,111,65,66,67,78,79,49,50,51,52,53]; 
 
    if(allow_char.indexOf(e.which) !== -1){ 
 
     //do something 
 
    } 
 
    else{ 
 
     return false; 
 
    } 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type='text' id='txt' value='' onpaste="return false" />

+0

@mplungjan: jak mogę to poprawić? –

+0

Thx. Potrzebuję go dla całego formularza, więc zredagowałem go, aby używać klasy zamiast identyfikatora. – Nutic

+0

Nie działa z znakami utworzonymi z naciśniętymi modyfikatorami, prawda? – DanMan

23

z JQuery,

$("input").keypress(function(e) { 
    var chr = String.fromCharCode(e.which); 
    if ("12345NOABC".indexOf(chr) < 0) 
     return false; 
}); 

bez JQuery

document.getElementById("foo").onkeypress = function(e) { 
    var chr = String.fromCharCode(e.which); 
    if ("12345NOABC".indexOf(chr) < 0) 
     return false; 
}; 

Dla jednej wkładki, z komentarzem @mplungjan i @ Matthew zamka

document.querySelector("#foo").onkeypress = function(e) { 
    return "12345NOABC".indexOf(String.fromCharCode(e.which)) >= 0; 
}; 
+5

lub 'return "12345NOABC" .indexOf (CHR)> = 0;' jeśli podoba ci się oneliners – mplungjan

+0

@mplungjan, dobry call – allenhwkim

+0

lub nawet 'return" 12345NOABC ".indexOf (String.fromCharCode (e.which))> = 0;' aby zredukować go do jednej linii –

Powiązane problemy