---
title: "Felmeddelande vid focus()"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/140544-felmeddelande-vid-focus"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "basjonne"
published: "2006-01-08T18:33:08.000Z"
updated: "2006-01-09T12:39:38.000Z"
replies: 7
views: 334
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/140544-felmeddelande-vid-focus"
---

# Felmeddelande vid focus()

## #1 — basjonne, 2006-01-08T18:33Z

Någon som vet varför jag får detta felmeddelande när jag kör focus? 
**Fel: \[Exception... "'Tillstånd nekades att hämta egenskap XULElement.selectedIndex' when calling method: \[nsIAutoCompletePopup::selectedIndex\]"**  

Och så här ser funktionen ut, där id är input-elementets id: 

```
function setFocus(id) {
	var formName = document.getElementById(id).parentNode.name; 
	document.forms[formName].elements[id].focus();
}
```

Tacksam för svar.

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

## #2 — Peter S, 2006-01-08T19:58Z

Det har nog att göra med document.getElementById(id).parentNode.name;

Testa att först hämta en referens till objektet, kolla så att det existerar och därefter accessa dess egenskaper:

```
var elm = document.getElementById(id);
if (elm){
  var formName = elm.parentNode.name;
  document.forms[formName].elements[id].focus();
}
```

Du kan behöva göra samma sak med föräldranoden (parentNode-delen).

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

## #3 — basjonne, 2006-01-08T20:31Z

Tack för snabba svar Peter! 

Jag testade att ändra funktionen till följande: 

```
function setFocus(id) {
	var elm = document.getElementById(id);
	var elmParent = document.getElementById(id).parentNode.id;
	if (elm && elmParent){
  		var formName = elm.parentNode.name;
  		document.forms[formName].elements[id].focus();
	}
}
```

Men jag vet inte om jag gör rätt med föräldranoden... scriptet funkar dock men jag får samma felmeddelande..

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

## #4 — Peter S, 2006-01-08T20:36Z

Så kanske:

```
function setFocus(id){
	var elm = document.getElementById(id);
	if (elm && elm.parentNode){
		var formName = elm.parentNode.name;
		document.forms[formName].elements[id].focus();
	}
}
```

 :)

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

## #5 — basjonne, 2006-01-08T20:59Z

Ja, det är ju mkt enklare och snyggare.   :) 
Men tyvärr blir det samma resultat...   :l

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

## #6 — Peter S, 2006-01-08T21:18Z

Då kanske vi kan göra så här istället:

```
// anrop
setFocus(this.form, 'id-värde');

function setFocus(frm, id){
  frm.elements[id].focus();
}
```

Om knappen(?) som anropar setFocus() ligger i samma formulär som det element som skall till att få fokus.  :)

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

## #7 — basjonne, 2006-01-09T09:50Z

Tyvärr är det inte riktigt så enkelt. Input-elementet skapas dynamiskt i denna funktion: 

```
function createNewInputObject(element, elementNr) { 
	
	elementNr++;
	var newElement = document.createElement('input');
	newElement.type = 'text';
	newElement.className = 'heading';
	newElement.name = element + '[' + elementNr + ']';
	newElement.id = element + '[' + elementNr + ']';
	newElement.setAttribute('onClick', 'selectText(this.id)');
	newElement.setAttribute('onKeyPress', 'return submitEnter(this, event, this.id, <?=$iid?>)');
	document.getElementById('inquiry').appendChild(newElement);
	setFocus(newElement.id);
}
```

Vill alltså sätta fokus på det element som har skapats i funktionen.

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

## #8 — Peter S, 2006-01-09T12:39Z

Du borde ändå kunna använda min senast föreslagna funktion:

```
setFocus(document.getElementById("inquiry"), newElement.id);
```

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/140544-felmeddelande-vid-focus
