[JS] document.getElementsByClassName('foo').disabled=false

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Fusioxan
  • Registratie: November 2009
  • Laatst online: 24-09 16:20
Hallo,

zoals jullie al in de titel kunnen lezen, heb ik eigenlijk een probleempje met javascript. Ik ben namelijk bezig met een adminpaneel, waar administrators gebruikers kunnen wijzigen. De administrators moeten eerst de gebruiker kunnen bekijken en daarna beslissen of ze die willen aanpassen.

Hierbij dacht ik aan disabled. Ik had dus elke input "gedisabled". d.m.v. een button kan een administrator de gegevens wijzigen. Het volgende had ik gedaan:
JavaScript:
1
2
3
4
5
function bekijk()
{
  document.getElementsByClassName('bekijk').disabled=false;
  document.getElementById('submit').style.display=block;
}

Bij de eerste haalt hij dus alle elementen op met de classname bekijk en zet disabled naar false. Bij de tweede zet hij de submit knop op block, zodat het formulier verzonden kan worden.

Helaas doen beide regels het niet, en ik weet niet waarom. Een beetje hulp zou ik waarderen. :)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
getElementsByClassName geeft een array/collection terug i.t.t. getElementById ;) Een array op disabled zetten is weinig zinnig ;)
En een style.display verwacht een string (en niet een undefined variabele block ;) )

[ Voor 25% gewijzigd door RobIII op 21-12-2010 16:29 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • TheBlasphemer
  • Registratie: September 2004
  • Laatst online: 21-09 12:43
Wat ik zo zie:
getElementsByClassName geeft een array van elementen terug, niet slechts 1.
Probeer eens:
code:
1
2
3
var elms=document.getElementsByClassName('bekijk');
for (var i=0; i<elms.length; i++)
elms[i].disabled=false;


De tweede is omdat block geen variabele is, probeer eens
code:
1
document.getelementById('submit').style.display="block";

[img=http://www.web2messenger.com/smallstatus/w2m/theblasp.png]


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:31
Als je op deze manier met collecties wilt kunnen omgaan zou ik eens naar jQuery kijken :+

Anders, met Rob3

Acties:
  • 0 Henk 'm!

  • Denhomer
  • Registratie: Augustus 2000
  • Laatst online: 20-09 09:18

Denhomer

Doh !

Je eerste regel: getElementsByClassName returned meerdere elementen. Hierdoor moet je dus een loop schrijven over de uitkomst om de disabled value te zetten.
Je tweede regel: probeer eens 'block', met quotes dus, de meeste css waarden zijn strings, geen constanten in javascript.

Acties:
  • 0 Henk 'm!

  • Fusioxan
  • Registratie: November 2009
  • Laatst online: 24-09 16:20
Hartstikke bedankt allen!

@Bosmonster
Ik moet van mijn baas ook jQuery kennen, maar het lukt me nog niet helemaal. Aangezien dit klein projectje vandaag af moet en omdat deze functie maar 1 keer hoeft, heb ik het maar zo gedaan. Omdat ik (dacht ik) het wel wist. :P
Pagina: 1