Avatar billede lsskaarup Nybegynder
25. november 2010 - 15:18 Der er 3 kommentarer og
1 løsning

document.form.elements[] fanges ikke

Grundet et server nedbrud, er jeg ved at se på at flytte vores intranet til en anden server. I den forbindelse prøver jeg at opdatere hele systemet, Apache, MySQL og PHP'en til en nyere version.

Jeg er dog løbet ind i et problem, som ikke var der før. Min form indeholder nogle felter, som alle navngives r+et nummer, f.eks. r50

Jeg har så nedenstående stump kode, der skulle ændre class-navnet på felterne. Men når jeg kører koden får jeg at vide, at document.ds.elements er null eller ikke et objekt.

Det virkede i den gamle version, så det kan da kun være minimalt der eventuelt skal rettes, men hvad skal jeg ændre og til hvad?

function setColor() {
    var fields = new Array('38','39','40','41','45','46a','47b','49a','239','249a', '321', '322', '323', '324', '325', '326', '327', '328', '329', '330', '331', '332', '333', '467a', '510c');
    for (i=0;i<fields.length;i++) {
        if ( document.ds.elements['r'+fields[i]] )
            document.ds.elements['r'+fields[i]].className = document.ds.elements['r'+fields[i]].className+'y';
        }
    }
Avatar billede lsskaarup Nybegynder
25. november 2010 - 15:20 #1
Glemte lige at skrive det er if-sætningen der fejler på.
Avatar billede keysersoze Ekspert
25. november 2010 - 15:24 #2
Det er svært at tyde uden mere kode - men prøv med;

if (document.getElementById('r' + fields[i]))
Avatar billede lsskaarup Nybegynder
25. november 2010 - 15:37 #3
Jeg ved ikke rigtigt, hvad jeg mere skal smide ind, ville det ikke forvirre mere, hvis du fik al koden?

Anyway, det hjalp med getElementById.

Det mærkelige er at den ikke brokker sig over

document.ds.elements['r'+fields[i]].className = document.ds.elements['r'+fields[i]].className+'y';

Men kun brokkede sig i if-sætningen...

Om det så ikke træder i kraft, kan jeg ikke sige, for der er flere fejl jeg skal have luset ud, før siden er helt oppe at spille, men dette var et skridt på vejen.
Avatar billede keysersoze Ekspert
25. november 2010 - 17:46 #4
det kan jeg ikke umiddelbart forklare - men du bør altid benytte getElementById
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester