Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wykluczenie możliwości wpisywania wybranych znaków w formularzu, co użyć bo mam mętlik JS noob
fate
post
Post #1





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
Damonsson
post
Post #2





Grupa: Zarejestrowani
Postów: 2 355
Pomógł: 533
Dołączył: 15.01.2010
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Powinno pomóc: http://blog.shiguenori.com/2009/05/18/jquery-alphanumeric/
Go to the top of the page
+Quote Post
Arcioch
post
Post #3





Grupa: Zarejestrowani
Postów: 324
Pomógł: 110
Dołączył: 18.09.2012

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
fate
post
Post #4





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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..

Ten post edytował fate 30.09.2012, 09:52:25


--------------------
Go to the top of the page
+Quote Post
Arcioch
post
Post #5





Grupa: Zarejestrowani
Postów: 324
Pomógł: 110
Dołączył: 18.09.2012

Ostrzeżenie: (0%)
-----


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 "-".

Ten post edytował Arcioch 30.09.2012, 11:32:46
Go to the top of the page
+Quote Post
fate
post
Post #6





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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 +


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 03:49