---
title: "onkeypress för all del, fast inte i formulär"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/134801-onkeypress-för-all-del-fast-inte-i-formulär"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "petergrennanet"
published: "2005-09-25T17:21:23.000Z"
updated: "2005-10-06T13:43:17.000Z"
replies: 5
views: 489
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/134801-onkeypress-för-all-del-fast-inte-i-formulär"
---

# onkeypress för all del, fast inte i formulär

## #1 — petergrennanet, 2005-09-25T17:21Z

Jag har ett ganska bra fungerade javascript som sniffar onkeypress events och gör smarta saker med navigeringen beroende på vilka knappkombinationer man trycker. Till viss del försöker jag "kopiera" vad Gmail kan göra. 

Nu funkar det faktiskt rätt så bra i både FF och IE. Det är bara ett stort problem kvar, så fort jag sätter focusen (med musen) i en input eller en textarea så kan jag inget skriva eftersom allt snappas upp av detta ovannämnda skript. Effekten är att jag inte kan skriva in nått i formulären. 

En lösning vore nått i stil med detta:

```
<input type="text" name="penisdimension" onfocus="disableKeyboardShortcuts()" onblur="enableKeyboardShortcuts()" />
```

 

...och dessa funktioner, disableKeyboardShortcuts() och enableKeyboardShortcuts() skulle då helt enkelt "toggla" en switch som för en stund tar bort min onkeypress event funktion. Problemet med denna lösning är att den är opraktisk för mig. Jag har massivs med olika formulär att då skriva om och göra ännu stökigare än vad de redan är. Finns det ingen bättre/smidigare lösning på detta enkla problem?

Permalänk: https://www.webforum.nu/p/134801

## #2 — nitro2k01, 2005-09-25T17:41Z

Inkludera denna kod till alla sidor:

```
window.onload=function(){
  els = [document.getElementsByTagName("INPUT"), document.getElementsByTagName("TEXTAREA")];

  for (i=0; i<els.length; i++)
    for (j=0; j<els.length; j++){
      els[i][j].onfocus = disableKeyboardShortcuts;
      els[i][j].onblur = enableKeyboardShortcuts;
    }
}
```

/r Fixade ett fel!

Permalänk: https://www.webforum.nu/p/1678063

## #3 — Peter S, 2005-09-25T17:47Z

Eller

```
function disableKeyboardShortcuts(e){
    e = e || window.event;

    if (typeof e.cancelBubble == "boolean"){
	e.cancelBubble = true;
    } else if (e.stopPropagation){
	e.stopPropagation();
    }
}

...onkeypress="disableKeyboardShortcuts(event)"...
```

Permalänk: https://www.webforum.nu/p/1678064

## #4 — nitro2k01, 2005-09-25T17:53Z

> **Peter S skrev:**
>
> Eller
>
> ```
> function disableKeyboardShortcuts(e){
>     e = e || window.event;
> 
>     if (typeof e.cancelBubble == "boolean"){
> 	e.cancelBubble = true;
>     } else if (e.stopPropagation){
> 	e.stopPropagation();
>     }
> }
> 
> ...onkeypress="disableKeyboardShortcuts(event)"...
> ```

Fast jag trodde att han ville slippa joxa med alla form-element?

Permalänk: https://www.webforum.nu/p/1678065

## #5 — Peter S, 2005-09-25T18:23Z

Då föreslår jag att han använder onkeypress istället för onfocus/-blur. Så med din kod som utgångspunkt skulle det bli:

```
window.onload=function(){
  els = [document.getElementsByTagName("INPUT"), document.getElementsByTagName("TEXTAREA")];

  for (i=0; i<els.length; i++)
    for (j=0; j<els[b][ i ][/b].length; j++){
      els[i][j].onkeypress = function(e){
	e = e || window.event;

	if (e.stopPropagation){
	  e.stopPropagation();
	} else if (typeof e.cancelBubble == "boolean"){
	  e.cancelBubble = true;
	}
      }
    }
}
```

Permalänk: https://www.webforum.nu/p/1678079

## #6 — petergrennanet, 2005-10-06T13:43Z

Tack for hjalpen!

Permalänk: https://www.webforum.nu/p/1682005

---

Tråden på webben: https://www.webforum.nu/amne/javascript/134801-onkeypress-för-all-del-fast-inte-i-formulär
