Avatar billede gizmo-gizmo Nybegynder
07. juni 2002 - 20:00 Der er 6 kommentarer og
1 løsning

Array, form felter!

Halløj. Så fik jeg oprettet endnu et javascript spm. :)

okay.. Jeg ville lige høre om man kunne gøre noget a la:

<input type="text" name="test[]">
<input type="text" name="test[]">
<input type="text" name="test[]">

Og så løbe dem igennem med fx:
test = document.form.test;
for(i=0; test.length > i; i++) {

Men det ser ikke ud til at virke. Kan man ikke det i javascript?
Er der evt. et alternativ?
Avatar billede jakoba Nybegynder
07. juni 2002 - 20:26 #1
Det kan man, og php-manualen anbefaler det vist endda. men det er skod.

Men det strider imod htmls og javascripts regler for navne. så den forløkke der vil ikke virke. der skal mere til:

var ggtest = document.form.elements;  // risikablet med samme navn i IE
for(i=0; ggtest.length > i; i++) {
    if ( ggtest[i].name="test[]" ) {
        // det du vil gøre med de felter
    }
}

mvh JakobA
Avatar billede gizmo-gizmo Nybegynder
07. juni 2002 - 20:59 #2
Kan ikke helt gennemskue metoden der. Ser heller ikke helt ud til, at jeg kan få det til at funge.

Så jeg prøver en anden metode i stedet for.
Den er a la: navn_1, navn_2 osv.
Men så løber jeg ind i en problem når jeg skal gøre:
document.form.navn_VARIABEL-I.value;

Har du en ide til hvordan man kan skrive det? Uden at den kommer med fejl.
Avatar billede jakoba Nybegynder
07. juni 2002 - 21:07 #3
Ja, det er ret nemt:

var i = 1;
document.form.[ "navn_"+i ].value = "halleluja";

skriver halleluja i det formfelt der har  name="navn_1" .
Avatar billede gizmo-gizmo Nybegynder
07. juni 2002 - 21:21 #4
Det virker faktisk ikke...

et simpelt eks. har jeg prøvet:
<script>
function skod() {
    var i = 0;
    skod = document.form.["testfelt_"+i].value;
    alert(skod);
}
</script>

<form name="form">
<input type="text" name="testfelt_0">
<input type="button" OnClick="skod();" value="begen kaffe">


dammit javascript er ved at pisse mig af (pissed me off) ....
Avatar billede jakoba Nybegynder
07. juni 2002 - 21:25 #5
1) afslut din formular med </form>
2) kald den noget andet en 'form' det ord bliver brugt til andre ting.

ja de kan være ret frustrerende at skulle sætte sig ind i noget nyt.

mvh JakobA
Avatar billede jakoba Nybegynder
07. juni 2002 - 21:27 #6
3) når du indeni sin funktion (der hedder skod) laver en variabel, så bør den variabel ikke også hedde 'skod'. kald variablen noget andet.
Avatar billede gizmo-gizmo Nybegynder
07. juni 2002 - 21:28 #7
Tjaa... Det kan det vel. Især i denne varme :))
Laver det i PHP i stedet, indtil jeg får lidt mere styr på det.

du får pointene anyaway, tak for hjælpen.
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