Avatar billede jytte Nybegynder
03. august 2009 - 09:54 Der er 8 kommentarer og
1 løsning

forhindre indtastning

Jeg ønsker mig noget javascript der kan forhindre at der bliver indtastet bestemte tegn i et text-felt. Jeg har mange ønsker, men vil være glad for bare at få hjælp til nogle af ønskerne

1. ønske
vha. passende reaktion på onkeypress vil jeg gerne have at der i et tekstfelt (som initielt indeholder bogstaver) ikke kan tastes bogstaver ind.

2. ønske
jeg ønsker at det ikke er muligt at slette bogstaver i feltet

3. ønske
jeg ønsker det er muligt at skrive mellemrum i feltet

4. ønske
Jeg ønsker at det er muligt at slette mellemrum i feltet

5. ønske
Jeg ønsker at det ikke er muligt at paste indhold ind i feltet
Avatar billede _skou_ Nybegynder
14. august 2009 - 11:13 #1
Til det formål tror jeg du bliver nød til at bruge 'onKeydown' istedet for 'onKeypress'.
Den hændelse der bliver returneret fra 'onKeydown' har en egenskab 'keyCode' som angiver UNICODE værdien for det tastetryk der udløste hændelsen. Så du skal finde ud af hvad UNICODE værdien er for hver af de taster du ønsker at blokere.

Du kan finde en sammenhæng mellem taster og UNICODE værdier her: https://developer.mozilla.org/en/DOM/Event/UIEvent/KeyEvent
Og her kan du læse lidt mere om egenskaben 'keyCode': https://developer.mozilla.org/en/DOM/event.keyCode

I den funktion som bliver kaldt når en 'onKeydown' hændelse bliver udløst skal du kalde metoden 'preventDefault' hvis du ønsker at blokere for det pågældende tastetryk.

Du kan bruge følgende side som reference til hvilke egenskaber en hændelse indeholder: https://developer.mozilla.org/en/DOM/event

Danske oversættelser:
egenskab = property
hændelse = event
Avatar billede jytte Nybegynder
17. august 2009 - 14:56 #2
Jeg indrømmer gerne at jeg aldrig rigtig har forstået events. Men selv de eksempler jeg kopiere fra nettet giver fejl hos mig (jeg bruger ie 7 og firefox 3). Kan du f.eks se hvad jeg gør galt i nednestående eksempel:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title>Opgave</title>

</head>

<body>
<form method="post" action="#" id="besvarelsesform">
<script type="text/javascript">
<!--

function tryk2(event){
var key = 0;
  if (window.event) {
    key = window.event.keyCode;
  } else if (event) {
    key = event.keyCode;
  }
  if (key==80)  {
    event.preventDefault();

  }
  else {//
  }
  return false;
}

//-->
</script>

<p>indtast noget i feltet blot ikke "p"</p>

<input type="text" value="" id="ord2" onKeydown="tryk2(this.id);">   
 
</form>
</body>
</html>
Avatar billede majbom Novice
19. august 2009 - 10:45 #3
prøv med:

<input type="text" value="" id="ord2" onKeydown="tryk2(event)">

i stedet...
Avatar billede jytte Nybegynder
23. august 2009 - 14:02 #4
>splazz

Tak det fik det til at virke i firefox -- men det virker stadig ikke i ie 7. Har du noget bud på hvorfor ?
Avatar billede majbom Novice
25. august 2009 - 09:10 #5
det ser ikke ud til at preventDefault virker i IE :s

jeg ved ikke om der findes et alternativ til ie
Avatar billede majbom Novice
04. november 2010 - 13:00 #6
fandt du en løsning?
Avatar billede jytte Nybegynder
07. april 2012 - 12:43 #7
smid et svar så jeg kan få lukket dette spørgsmål (jeg fik det vist delvist til at virker)
Avatar billede majbom Novice
09. april 2012 - 08:31 #8
super
Avatar billede majbom Novice
18. april 2012 - 08:08 #9
tfp :)
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