Toon posts:

[JS] getElementsByName oplossing in IE

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een systeem gemaakt waarbij de bezoeker met checkboxjes zijn selectie kan maken. Hierbij maak ik gebruik van getElementsByName. Dit werkt perfect in Firefox en Safari, maar IE weigert dienst.

voorbeeld: http://copeters.nl/getelem.htm

ik wil niet dat de pagina opnieuw geladen wordt als men een vinkje aan of uit zet. heeft iemand een suggestie hoe ik dit systeem kan maken op een manier die wel in FF, IE en Safari werkt?

Acties:
  • 0 Henk 'm!

  • trinite_t
  • Registratie: Maart 2003
  • Laatst online: 22-09 13:25
getElementById() functie werkt volgens mij wel overal in

The easiest way to solve a problem is just to solve it.


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Waarom itereer je niet gewoon door je forms collection heen :? Is volgens mij nog sneller ook.

edit:

Welke versie van IE test je? Het volgende voorbeeld werkt gewoon in IE6 7: http://www.w3schools.com/...ry_dom_document_getbyname

[ Voor 48% gewijzigd door BtM909 op 31-10-2008 11:15 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:40

crisp

Devver

Pixelated

P-elementen hebben officieel ook geen name-attribuut.
Persoonlijk zou ik met class werken; genoeg scripts te vinden die een crossbrowser getElementsByClassName implementeren voor browsers die het nog niet native ondersteunen :)

En voor het selecteren van form-elementen is de elements collection van het form-object natuurlijk de beste manier :)

[ Voor 22% gewijzigd door crisp op 31-10-2008 11:10 ]

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • Zamalan
  • Registratie: September 2007
  • Laatst online: 26-02-2015

Zamalan

Whine Connaisseur

Wat je ook kan doen is getElementsByTagName('p') en dan in je lus x[i].getAttribute('name'). Ik weet niet of dit proper is...

Bijkomend probleem is dat onChange enkel fired als het element focus verliest, dit is voor checkboxes waarvan de verandering direct moet gezien worden wel nogal onhandig, beter onclick gebruiken.

Verder:
code:
1
2
3
4
function setcat(c, aan){
...
}
onchange='setcat(this.value, this.checked)'

als setcat enkel door die checkboxes aangeroepen zal worden is hetvolgende misschien beter:
code:
1
2
3
4
5
6
function setcat(element){
var c = element.value;
var aan = element.checked;
...
}
onclick='setcat(this)'

MSI GX660 --- i5 460M /// 4GB DDR3 /// Mobility Radeon HD5870 /// 1920x1080 /// 500GB


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Zamalan schreef op vrijdag 31 oktober 2008 @ 11:44:
Wat je ook kan doen is getElementsByTagName('p') en dan in je lus x[i].getAttribute('name'). Ik weet niet of dit proper is...
Bedankt voor de tips, ik heb het met opgelost met getElementsByTagName('p') en de lus [x].getAttribute('name'). Werkt perfect!

zie http://copeters.nl/getelem2.htm

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:31
Nog paar kleine dingetjes:

Gebruik type-attributen bij je style/script tags (type="text/css" en type="text/javascript")

Gebruik span-tags ipv font-tags.

Je id's moeten uniek zijn, het id 'item' komt nu ettelijke malen voor.

Acties:
  • 0 Henk 'm!

  • DiSiLLUSiON
  • Registratie: September 2000
  • Laatst online: 12-09 18:17
Daarnaast is het niet echt netjes om op elke div een 'onmouseout' & 'onmouseover' event te hangen. Beter is het om de event aan de 'items' div te hangen, en de div met event.target te identificeren.
Pagina: 1