---
title: "Hjälp med elementbyid"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/102277-hjälp-med-elementbyid"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "Melitta"
published: "2004-04-24T21:45:07.000Z"
updated: "2004-04-27T05:39:47.000Z"
replies: 13
views: 378
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/102277-hjälp-med-elementbyid"
---

# Hjälp med elementbyid

## #1 — Melitta, 2004-04-24T21:45Z

Hur fungerar getelementbyid i olika webbläsare?
Jag har en for loop och i den måste jag nå värden vissa textelement på sidan, jag har försökt med detta:

document.getElementById(col_array\[part_num\])
col_array\[part_num\] innehåller namnen på objeckten jag försöker nå..

BTW: Sidan fungerar perfekt i IE

Finns det nått sätta att lösa detta på?

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

## #2 — spango, 2004-04-24T22:18Z

Vilka webbläsare är det det inte funkar i? Försöker du med NS4 är det inte så konstigt om det inte funkar, eftersom den är ett antal år äldre än spec:en för HTML DOM ;)

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

## #3 — Melitta, 2004-04-24T22:48Z

Nej jag har testat i både opera 7.23 och senaste Firefox..

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

## #4 — Peter S, 2004-04-25T12:07Z

Har du något icke-fungerande exempel att visa oss? När du skriver att col_array\[part_num\] innehåller namnen på objekten, menar du då värdena på deras name\-attribut? document.getElementById avser värdet på id\-attributet.

 :)

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

## #5 — Melitta, 2004-04-25T18:25Z

```
// Henrik Danielsson 2003-2004
   
function checkerr(frm,obj,valid,err,nfo)	{
var varerr = ''
var ref = ''

var col_array=obj.split(",");
var valid_array=valid.split(",");
var err_array = err.split("*")
var part_num=0;

while (part_num < col_array.length)	{
	switch(valid_array[part_num]) 	{ 
        case "url":	{ 
		if (document.getElementById(col_array[part_num].name).value.search(/^http/) == -1) {
		 if (ref == 0)	{
		 		ref = col_array[part_num].name;	}
				else {
		 		ref = ref + ' ' + col_array[part_num].name;	}
		 if (varerr == 0)	{
		 		varerr = ' ' + err_array[part_num].name;	} 
				else {
		 		varerr = varerr + '\n ' + err_array[part_num].name;	}
		}
        break;             
         }
		case "mail": { 
		if (document.getElementById(col_array[part_num].name).value.search(/^[A-Za-z0-9_\-\.]+@[^ ]+\.[A-Za-z]{2,4}$/) == -1) {
		 if (ref == 0)	{
		 		ref = col_array[part_num].name;	}
				else {
		 		ref = ref + ' ' + col_array[part_num].name;	}
		 if (varerr == 0)	{
		 		varerr = ' ' + err_array[part_num].name;	} 
				else {
		 		varerr = varerr + '\n ' + err_array[part_num].name;	}
		}
     	break;	
		}
        case "text": { 
		if (eval(document.getElementById(col_array[part_num].name).value.length) == 0) {
		 if (ref == 0)	{
		 		ref = col_array[part_num].name;	}
				else {
		 		ref = ref + ' ' + col_array[part_num].name;	}
		 if (varerr == 0)	{
		 		varerr = ' ' + err_array[part_num].name;	} 
				else {
		 		varerr = varerr + '\n ' + err_array[part_num].name;	}
		}
        break;             
    }
}  
part_num+=1;
}
  hiinp(ref,frm);
  dowhat(varerr,frm,nfo);
}

function hiinp(ref,frm) {
for (i = 0; i < frm.elements.length - 1; i++) {
  frm.elements[i].name.style.borderColor = '#f6f6f6';
  frm.elements[i].name.style.backgroundColor = '#fbfbfb';
 }

if (ref.length>0){}	{
var ref_array = ref.split(' ');
if (ref_array.length>0){
var part_num=0;
while (part_num < ref_array.length)
 {
 document.getElementById(ref_array[part_num].name).style.borderColor = '#FFCACB';
 document.getElementById(ref_array[part_num].name).style.color = '#666666';
 document.getElementById(ref_array[part_num].name).style.backgroundColor = '#fbfbfb';
 if (part_num == 0){
 document.getElementById(ref_array[part_num].name).focus();
 document.getElementById(ref_array[part_num].name).style.borderColor = '#ff0000';
 document.getElementById(ref_array[part_num].name).style.color = '#333333';
 document.getElementById(ref_array[part_num].name).style.backgroundColor = '#ffffff';
 }
 part_num+=1;
  }}
}
}

function dowhat(varErr,frm,nfo)	{
	if(varErr.length > 0)	{
	alert('En del fel påträffades:\n' + nfo + '\n' + varErr);
	return false;
	}
	else	{
 	document.getElementById('send').value = 'Vg vänta..';
 	document.getElementById('send').disabled = 'disabled';
	frm.submit();
	return true;
	}
}

function setfocus(obj)	{
	 document.getElementById(obj).focus();
}
```

Kallar på denna funktion igenom:

```
<script type="text/javascript">
function validate()	{
var frm = 'minform'	
var objects = 'bannerurl , alt , url , mail , namn';
                var valid = 'url,text,url,mail,text'
                var err = 'Felaktig bannera adress.*Ingen alt text*Felaktig url*Felaktig mail*Inget namn'
	var nfo = 'För att kunna slutföra förfrågan \nmåste du rätta nedanstående fel.\n'
	checkerr(frm,obj,valid,err,nfo);
	}
</script>
```

Detta är mitt första javascript så skratta int eåt mig nu om jag gjort allt totalt fel..

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

## #6 — Peter S, 2004-04-25T19:07Z

Som sagt, document.getElementById() tar en sträng avseende ett elements id som in-parameter.

Jag kan tänka mig att ditt exempel fungerar i IE eftersom ett anrop med ovanstående funktion fungerar med ett argument som syftar till såväl ett elements id som namn.

Posta gärna tillhörande HTML-kod också.

 :)

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

## #7 — Melitta, 2004-04-25T19:36Z

```
<form action="function_add_banner.asp" method="post" name="banner" id="banner" style="margin:0px; padding:0px; " onsubmit="false()">
  <p style="float:none;width:308px;"><a href="javascript:setfocus('bannerurl');">Adress till din knapp:</a>
    <input name="bannerurl" type="text" onfocus="this.style.borderColor = '#999999';"  onblur="this.style.borderColor = '#dadada';" />
    <input type="button" name="Button" value="Kontrolera." onclick="document.prewiev.src=document.banner.bannerurl.value;"  onfocus="this.style.borderColor = '#999999';" onblur="this.style.borderColor = '#dadada';" style="margin-left:10px; "/>
  </p>
  <p><a href="javascript:setfocus('alt');">Alt text f&ouml;r din knapp:</a>    <input name="alt" type="text" id="alt"  onfocus="this.style.borderColor = '#999999';" onblur="this.style.borderColor = '#dadada';"/></p>
  <p><a href="javascript:setfocus('url');">Din hemsidas adress:</a>    <input name="url" type="text" id="url" onfocus="this.style.borderColor = '#999999';" onblur="this.style.borderColor = '#dadada';"/></p>
  <p><a href="javascript:setfocus('mail');">Din E-Post adress:</a>    <input name="mail" type="text" id="mail" value="@"  onfocus="this.style.borderColor = '#999999';" onblur="this.style.borderColor = '#dadada';"/></p>
  <p><a href="javascript:setfocus('namn');">Ditt namn:
  </a>    <input name="namn" type="text" id="namn" onfocus="this.style.borderColor = '#999999';" onblur="this.style.borderColor = '#dadada';"/></p>
  <p>
    <input name="send" type="button" id="send" onclick="validate();" value="Skicka."  onfocus="this.style.borderColor = '#999999';" onblur="this.style.borderColor = '#dadada';"/></p>
</form>
```

Nu har jag fått det att funka med en grymt bantad version, men det skulle vara skoj att veta vad som är fel med denna :)

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

## #8 — Peter S, 2004-04-25T19:52Z

1\. setFocus() anropas med 'bannerurl' som inte innehas av något element som id.

2\. När jag trycker på "Skicka" anropas checkerr() med ett argument *obj* som inte existerar i den globala namnrymden (utanför funktionen i fråga).

3\. *onsubmit="false()"*, vad gör den raden? *false* är en boolesk konstant och ingen funktion.

För att kunna gå vidare med felsökningen är det bra om du kan svara på vad checkerr() får för in-parametrar.

 :)

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

## #9 — Melitta, 2004-04-25T20:14Z

```
<script type="text/javascript">
function validate()	{
var frm = 'minform'	
var objects = 'bannerurl , alt , url , mail , namn';
                var valid = 'url,text,url,mail,text'
                var err = 'Felaktig bannera adress.*Ingen alt text*Felaktig url*Felaktig mail*Inget namn'
	var nfo = 'För att kunna slutföra förfrågan \nmåste du rätta nedanstående fel.\n'
	checkerr(frm,obj,valid,err,nfo);
	}
</script>
```

Valideringen eller den "stora" koden ligger i en egen js fil, detta ocanför ligger i samma fil som formen, när dutrycker skicka startar validate, sätter värdena på object och så visare, där efter startar checkerr..
Vet inte om det gjorde det lite klarare, men som sagt, detta är mitt första script och jag har googlat mig fram till det mesta..
Kan posta båda filerna om du vill.

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

## #10 — Peter S, 2004-04-25T22:47Z

Det kan nog vara en bra idé att göra.

 ;)

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

## #11 — Melitta, 2004-04-25T22:57Z

Då gör jag så, har ändrat lite i det nu men du kan ju se om du får det att funka, vore guld :)

Fått det till att hänga browsern nu iaf \*skrattar\*

Bilagor:

- [validera.zip](https://www.webforum.nu/a/3360.zip)

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

## #12 — Melitta, 2004-04-26T17:48Z

Ingen som har nån lösning?

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

## #13 — Peter S, 2004-04-26T19:06Z

Jag har gjort några ändringar. Se den bifogade filen.

 :)

Bilagor:

- [melitta.zip](https://www.webforum.nu/a/3363.zip)

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

## #14 — Melitta, 2004-04-27T05:39Z

Super :) Tyvär så markerar han inte rätt fällt om tomt bara :/, ska se om jag kan ordna d..

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

---

Tråden på webben: https://www.webforum.nu/amne/javascript/102277-hjälp-med-elementbyid
