Avatar billede verakso Nybegynder
15. juni 2009 - 16:23 Der er 4 kommentarer og
1 løsning

Hjælp til omskrivning af kode

Jeg har fået noget gammel kode, der selvfølgelig ikke virker i FF og en hel del andre browsere.

Årsagen er den velkendte måde til at hente værdier fra elementer.

IE metoden:
var data = document.form.elements('values');

FF metoden:
var data = document.getElementById('value');


Mit problem er denne stump kode:

function blankFields()
{
    var values = document.form.elements('values');
    if (isArray( values))
    {
        var ix = 0;
        while (ix < values.length)
        {
            copyTxt2( values[ix], ix, '');
            ix++;
        }
    }
    else
    {
        copyTxt2( values, 0, '');
    }
    eval(<%=goToFirst%>);
}

Problemet er, at formen form indeholder flere felter med ID/navnet 'values' så den gamle kode er som sådan logisk nok, men duer altså ikke i moderne browsere.

Desværre har jeg ikke stor success med at skrive:

var values = document.getElementById('values');

i stedet, da metoden jo ikke returnere et array men forudsætter at der ikke er flere 'values' felter.

Så uden at skulle omskrive hele formularen (det er bare ikke en option), hvordan kan jeg så tweake js koden til at opfører sig på sammme måde?

Ligger der evt. nogle muligheder i prototype frameworket?
Avatar billede roenving Novice
15. juni 2009 - 16:40 #1
Prøv getElementsByName, som altid returnerer et array, så du ikke behøver at teste på om det er et array:

function blankFields()
{
    var values = document.getElementsByName('values');
    for (var i=0,im=values.length;im>i;i++)
    {
        copyTxt2( values[i], i, '');
    }
    eval(<%=goToFirst%>);
}
Avatar billede verakso Nybegynder
15. juni 2009 - 22:59 #2
Se det var interessant.

Det skak lige prøves som det første i morgen tidlig
Avatar billede verakso Nybegynder
16. juni 2009 - 09:19 #3
Fantastisk, der lærte jeg forskellen på getElementById og getElementByName

Smider du et svar?
Avatar billede roenving Novice
16. juni 2009 - 15:49 #4
Bemærk getElementsByName !-)

-- els velbekomme '-)
Avatar billede roenving Novice
18. juni 2009 - 17:58 #5
Tak for point ;~}
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

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





Premium
De virker skræmmende godt: Med Apples nye Airtags kunne jeg spore mine chefer (og mine ting) med mobilen
Apples Airtags er uhyre effektive og lette at anvende - og det giver grund til bekymring.
Computerworld
Stor krise i den danske it-stjerne David Heinemeiers Hanssons firma: Her er historien om dramaet, der fik en tredjedel af de ansatte i Basecamp til at smække med døren
De ansatte har i hobe forladt David Heinemeier Hanssons amerikanske succes-firma Basecamp efter en intern racisme-debat. Hvordan kunne det gå så galt?
CIO
Har du rost din mellemleder i dag? Snart er de uddøde - og det er et tab
Computerworld mener: Mellemledere lever livet farligt: Topledelsen får konstant ideer med skiftende hold i virkeligheden, og moden går mod flade agile organisationer. Men mellemlederen er en overset hverdagens helt med et kæmpe ansvar. Her er min hyldest til den ofte latterliggjorte mellemleder.
Job & Karriere
Eva Berneke stopper som topchef i KMD og flytter til Paris: Her er KMD's nye topchef
Efter syv år på posten som topchef for KMD forlader Eva Berneke selskabet. Nu flytter hun med familien til Paris, hvor hun vil fortsætte sit bestyrelsesarbejde. KMD har allerede afløser på plads.
White paper
Sådan: Ryd forhindringerne af vejen på cloudrejsen
IBM Cloud gør det lettere at lægge kritiske applikationer i skyen eller på en hybrid platform samt bevare kontrol og ejerskab – med fuld understøttelse af SAP og VMware.