Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wykluczenie możliwości wpisywania wybranych znaków w formularzu
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
fate
Witam was. arrowheadsmiley.png

Mam do was takie pytanie gdyż znów złapałem zajawkę na zabawę w webmastera i potrzebuję w pewnym polu w formularzu zablokować możliwość wpisywania znaków innych niż cyfry.
Wcześniej miały być też przecinki i znalazłem gdzieś coś takiego, wrzuciłem, no i działało wsumie ok:

CODE
<script type="text/javascript">
<!--
function f(e){e=e.which||event.keyCode;return(e>43&&e<58||e==8)}
//-->
</script>

onkeypress="return f(event)


ale przepuszcza . , - / i chyba nic więcej - w sumie to grzebiąc znalazłem mnóstwo funkcji o podobnym działaniu i zrobił mi się mętlik. Z JS mam tyle wspólnego, że jako tako wstawić tylko potrafię stąd moje pytanie, co użyć, co się nada w tym przypadku najlepiej?

Lub najchętniej gdyby ktoś podrzucił przykład w którym wybiera się znaki coś jak wyrażenia regularne np dozwolne wszystko minus to co podam w nawiasie o ile coś takiego istnieje lub odwrotnie nic nie dozwolone oprócz tego co wypisze.
Może to co używam jest taką funkcją jak tak popatrzę na składnie noobowskim okiem ale poprosiłbym o link/wyjaśnienie gdzie/jak te znaki się podaje.

Wiem, że mogę na was liczyć. Pozdrawiam headsetsmiley.png
Damonsson
Powinno pomóc: http://blog.shiguenori.com/2009/05/18/jquery-alphanumeric/
Arcioch
Tylko liczby całkowite to tak wink.gif

  1. <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.1.min.js"></script>
  2.  
  3. $(function(){
  4.  
  5. $(".count").keydown(function(event) {
  6. if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 ||
  7. (event.keyCode == 65 && event.ctrlKey === true) ||
  8. (event.keyCode >= 35 && event.keyCode <= 39)) {
  9. return;
  10. }
  11. else {
  12. if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
  13. event.preventDefault();
  14. }
  15. }
  16. });
  17.  
  18.  
  19.  
  20. });


PS. Polecam ten plugin wink.gif LINK
fate
Zawsze bałem się jak widziałem że jQuery ale teraz kumam, że to poprostu JavaScript z biblioteką funkcji czy jakoś tak. Użyjemy, dziękujemy

..jednak nie umiem tego wstawić w <head> wrzuciłem ta linijke <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.1.min.js"></script>

w treści tak (jak wczesniej jako echo):
<script type="text/javascript">
<!--

$(function(){

$(".count").keydown(function(event) {
if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 ||
(event.keyCode == 65 && event.ctrlKey === true) ||
(event.keyCode >= 35 && event.keyCode <= 39)) {
return;
}
else {
if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
event.preventDefault();
}
}
});



});
//-->
</script>

a przy inpucie zostało:

<input type="text" name="liczba" maxlength="4" class="kwota" value="2" style="text-align: center;" onkeypress="return f(event)" />,

i tu pewnie trzeba zmienić, mam nadzieję że działą też na liczby ujemne w sensie że - nie przepuszcza..
Arcioch
W head dajesz taki kod wink.gif

  1. <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.1.min.js"></script>
  2.  
  3. $(function(){
  4.  
  5. $(".kwota").keydown(function(event) {
  6. if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 ||
  7. (event.keyCode == 65 && event.ctrlKey === true) ||
  8. (event.keyCode >= 35 && event.keyCode <= 39)) {
  9. return;
  10. }
  11. else {
  12. if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
  13. event.preventDefault();
  14. }
  15. }
  16. });
  17.  
  18.  
  19.  
  20. });
  21.  


a kod Twojego inputa ma wyglądać tak wink.gif

  1. <input type="text" name="liczba" maxlength="4" class="kwota" value="2" style="text-align: center;" />,


I powinno działać. Liczb ujemnych nie przepuszacza bo nie da się wpisać znaku "-".
fate
MEGA!! Wielkie dzięki, zrobiłem jak powiedziałeś, hula i turbo śmiga aż miło..
Świetna robota Panie Lkingsmiley.png

Dla potomnych dodam iż po tym co napisał Arcioch w headzie dodałem znacznik zamykający </script> bo w innym wypadku nie wyświetla strony tylko owego diva bez styli. nerdsmiley.png i nic więcej nie trzeba z tym robić ewentualnie dostosować nazwę klasy do diva.

Podziękowania również za udział w dyskusji dla Damonsson niestety na owego hiszpańskiego linka jestem albo za głupi albo za leniwy choć tam trzeba chyba tylko ściągnąć skrypcik lecz nie skorzystałem

Problem rozwiązany, w różnych forach się uczestniczyło ale tutaj czas reakcji i rzetelność odpowiedzi to jest po prostu niebo aż chce się brnąć w temat.
Dzięki jeszcze raz +
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.