Avatar billede kjoller Nybegynder
08. oktober 2004 - 00:06 Der er 3 kommentarer og
1 løsning

tilføj + stigende navne

Jeg har lavet et script som tilføjer en række input felter med et stigende navn.

alt virker undtagen navngivningen, den stiger ikke den hænger på det tal som er i counter nå man starter.

er der nogle som kan se hvad jeg laver forkert?

function AddPackage()
{
    var name;
    name = document.getElementById("counter").value;
    document.getElementById("counter").value = parseFloat(document.getElementById('counter').value) +1
    //alert(name);
    var txt = '<Table border=0>' +
               
                '<tr>'+
                '    <td><input type=text name="remarks' + name + '" size=15></td>'+
                '</tr>'+
                '</table>'        ;
    TESST.push(txt);

    document.getElementById('Advice').innerHTML = document.getElementById('Advice').innerHTML + TESST[1];

}

</script>
Avatar billede roenving Novice
10. oktober 2004 - 14:47 #1
Sådan,måske ?-)

function AddPackage(){
    var name = +document.getElementById("counter").value + 1;
    document.getElementById("counter").value = name;
    var txt = '<table border="0"><tr><td><input type="text" name="remarks'
    txt+= name + '" size="15"></td></tr></table>';
    document.getElementById('Advice').innerHTML += txt;

}
Avatar billede kjoller Nybegynder
12. oktober 2004 - 10:22 #2
Det virker fint.

Hvis du vil gøre mig den tjeneste at fortælle mig hvad foreskellen er så bliver jeg lykkelig :-)

Dog har jeg lavet en lille tilretning "parseFloat".

function AddPackage(){
    var name = parseFloat(document.getElementById('counter').value) + 1;
    document.getElementById('counter').value = name;
    var txt = '<table border="0" ID="Table1"><tr><td><input type="text" name="remarks'
    txt+= name + '" size="15" ID="Text1"></td></tr></table>';
    document.getElementById('Advice').innerHTML += txt;

}
Avatar billede roenving Novice
12. oktober 2004 - 14:58 #3
parseFloat er i denne sammenhæng blot ekstra kode, og faktisk forkert, da du i det aktuelle tilfælde bør bruge parseInt ...

Den alvorligste fejl var, at du ikke indstillede name-variablen til at indeholde det inkrementerede nummer !o]

Derudover har jeg for lige at effektivisere koden:

Sørget for at typecaste den tekst-værdi, som aflæses i counter-feltet til et tal (og at sætte et + foran er jo langt mere effektivt kodemæssigt end at skulle smide en funktion rundt om !-)

Da der kun een gang er grund til at opdele tekststrengen for at tillægge noget, som ikke kendes på kodeskriver tidspunktet, har jeg effektiviseret ved at skrive dannelsen af tekstvariablen til to linjer, og smidt den fuldstændig overflødige push-funktion ud ...

Til sidst har jeg udnyttet add-by-value-operatoren += som sætter noget bagi en tekststreng (eller forøger et tal med den angivne værdi !-)

Velbekomme '-)
Avatar billede roenving Novice
12. oktober 2004 - 15:33 #4
-- og 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
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