Kom ihåg mig?
Home Menu

Menu


Att inte tillåta att skriva . (punkt)

Ämnesverktyg Visningsalternativ
Oläst 2007-08-10, 13:03 #1
HenSod HenSod är inte uppkopplad
Flitig postare
 
Reg.datum: May 2005
Inlägg: 484
HenSod HenSod är inte uppkopplad
Flitig postare
 
Reg.datum: May 2005
Inlägg: 484
Jag har ett textfält där jag inte tillåter att man skriver . (punkt). För att kontrollera så att man inte skriver punkt använder jag mig av händelsehanteraren onkeypress och såhär ser koden ut:
Kod:
//verify for netscape/mozilla

var isNS4 = (navigator.appName=="Netscape")?1:0;

<input type="text" name="domainname" id="domainname" class="textfield" onKeypress="if(!isNS4){if (event.keyCode==190) event.returnValue = false;}else{if (event.which==190) return false;}">
Olyckligtvis fungerar inte den koden. Vad kan vara fel?
HenSod är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-08-10, 13:24 #2
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
fors fors är inte uppkopplad
Medlem
 
Reg.datum: Aug 2006
Inlägg: 131
Jag vet inte vad svaret på din fråga är, men du kollar väl detta på serversidan också?
fors är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-08-10, 15:40 #3
HenSod HenSod är inte uppkopplad
Flitig postare
 
Reg.datum: May 2005
Inlägg: 484
HenSod HenSod är inte uppkopplad
Flitig postare
 
Reg.datum: May 2005
Inlägg: 484
Ja, jag kollar det även på serversidan.
HenSod är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-08-13, 11:47 #4
oddholst oddholst är inte uppkopplad
Medlem
 
Reg.datum: Aug 2007
Inlägg: 127
oddholst oddholst är inte uppkopplad
Medlem
 
Reg.datum: Aug 2007
Inlägg: 127
Citat:
Originally posted by HenSod@Aug 10 2007, 13:03
... klippetiklipp
Olyckligtvis fungerar inte den koden. Vad kan vara fel?
Du är nog inne på rätt spår, men du måste även tänka på att en användare ändå kan lägga in en punkt genom att klippa&klistra.
Gör istället en javascriptfunktion som, för varje onkeypress kontrollerar om någon av tecknen i strängen innehåller det oönskade tecknet.

Använd metoden indexOf('.') för att hitta punkten du vill ta bort. Funktionen returnerar positionen där den sökta strängen startar (returnerar -1 om strängen inte finns).

Sen använder du metoden replace(".","") för att byta ut den första funna punkten. Jag har inte koll på vad metoden returnerar. Ev kan man skippa steget med indexOf(). Loopa igenom tills inga fler förekomster hittas.

Tänk dock på att det inte går att detektera en klistra-in-händelse. Det finns ingen "onpaste"... Antingen sätter du en timer som kontrollerar rutan med jämna mellanrum (kan vara resurskrävande) eller så görs kontrollen när rutan lämnas (onblur).

Lite tips iallafall...
oddholst är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-08-13, 18:24 #5
koalas avatar
koala koala är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Sep 2004
Inlägg: 1 154
koala koala är inte uppkopplad
Har WN som tidsfördriv
koalas avatar
 
Reg.datum: Sep 2004
Inlägg: 1 154
onchange triggas väl ändå av paste?
koala är inte uppkopplad   Svara med citatSvara med citat
Oläst 2007-08-13, 18:42 #6
oddholst oddholst är inte uppkopplad
Medlem
 
Reg.datum: Aug 2007
Inlägg: 127
oddholst oddholst är inte uppkopplad
Medlem
 
Reg.datum: Aug 2007
Inlägg: 127
Citat:
Originally posted by koala@Aug 13 2007, 18:24
onchange triggas väl ändå av paste?
Jo, du har rätt. Det funkar nog. Valideringen sker dock ändå först när man lämnar fältet. Detta gäller såväl onblur och onchange...
oddholst är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 22:52.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017