Avatar billede tknudsen Nybegynder
07. maj 2001 - 16:17 Der er 5 kommentarer og
2 løsninger

undgå bogstaver i text felt

Hvordan luser jeg bogstaver fra ved indtastning i et text felt i IE 5+ ?

Jeg er klar over at jeg skal kalde funktionen på onKeyDown med event som parameter. Men hvordan undgår jeg at overførte keyCode\'s appendes til strengen i text feltet ?
Avatar billede nute Nybegynder
07. maj 2001 - 16:22 #1
er ikke helt sikker på hva du mener. kan du komme med et spesifikt eksempel ?
Avatar billede tknudsen Nybegynder
07. maj 2001 - 16:24 #2
Jeg vil undgå at der kan indtastet andet end tal i et text felt.
Avatar billede nute Nybegynder
07. maj 2001 - 16:29 #3
du skal bruke isNaN metoden

her er et raskt eksempel (jeg leste at du benyttet events, men det \"gidder\" jeg ikke lave. Jeg vil bare vise prinsippet. Spør endelig hvis du lurer på noe...

<html> 
<script> 
function checkForm(){   
  var str = document.form.navn.value; 
  for( i = 0; i < str.length; i++ ){     
    if( isNaN( str.charAt(i) ) ){     
      alert(\"Inneholder en bokstav\");     
      return false; 
      break;     
    }     
  } 
  return true; 
}     
</script>   
<body> 
<form name=\"form\" onSubmit=\"java script:return checkForm();\"> 
<input type=\"text\" name=\"navn\" size=\"10\"> <br> 
<input type=\"submit\" Value=\"submit\"> 
</form> 
</body> 
</html> 

Avatar billede tknudsen Nybegynder
08. maj 2001 - 08:48 #4
nute>> i dit eksempel kan der indtastes bogstaver i \"navn\" feltet. Det er først når formen submit\'es at der bliver testet på indholdet i \"navn\" feltet.

Jeg vil helt undgå at der kan indtastes andet end tal - og derfor bliver jeg nød til at bruge events.
Avatar billede tknudsen Nybegynder
08. maj 2001 - 09:21 #5
Indtil videre har jeg løst problemet ved at gemme text feltets værdi på onKeyDown og på onKeyUp tjekker jeg for div ugyldige indtastninger, som - hvis optræder - overskriver text feltet med oldvalue.

Jeg håber stadig på at kunne gøre dette mere fikst...
Avatar billede jakoba Nybegynder
10. maj 2001 - 10:07 #6
Det er vist ikke nok at teste om der er appended et ugyldigt tegn til værdien. data kan jo også ankomme via cut&paste, javascript, ol.

<input type=\"text\" size=10
        onchange=\'this.value=this.value.replace(/[\\D]/i,\"\");\'>
fjerner alle tegn i feltet der ikke er decimale cifre.

Hvis det er lovligt med kommatal bliver det noget mere kompliceret da der næppe må være mere end eet komma :)

mvh JakobA
Avatar billede tknudsen Nybegynder
11. september 2001 - 08:24 #7
lukker...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester