Avatar billede donslund Nybegynder
03. maj 2005 - 10:44 Der er 11 kommentarer og
1 løsning

Sammensætte navn

Jeg har en række formularer jeg skal køre igennem en ad gangen. De er navngivet pg1, pg2, pg3 osv.

Når jeg vil køre dem igennem med en for-løkke, hvordan danner jeg så navnet?

document.pg+i+.navn ser ikke ud til at virke. I'et kommer fra min for-sætning.
Avatar billede skyggen2000 Nybegynder
03. maj 2005 - 10:50 #1
prøv med document.getElementById("pg" + i).value
Avatar billede olebole Juniormester
03. maj 2005 - 10:51 #2
<ole>

document.forms["pg"+i].navn

/mvh
</bole>
Avatar billede donslund Nybegynder
03. maj 2005 - 11:03 #3
Jeg forstår det ikke helt.

Jeg har denne funktion:

function indsaet_personer() {
    alert("Check, at jeg er nået her til!");
    for (i=0;i<10;i++) {
        if (document.forms["pg"+i].navn != '') {
          alert(i+" - RecordId = ");
          document.pg+i+.action = "/page370.aspx?action=post&layoutid=1&docid=0&listid=&recid=";
          document.pg+i+.submit();
        }
    }
}

Men den kommer og siger, at der er et objekt der var ventet. Det kommer ikke med den første alert først. Burde den ikke det?
Avatar billede olebole Juniormester
03. maj 2005 - 11:15 #4
1. Det er ikke til at sige uden at kunne se koden. Den fejl kan komme af flere årsager
2. Du har stadig forkert syntaks i scriptet. Ret alle forekomster - også ved submit og action
Avatar billede olebole Juniormester
03. maj 2005 - 11:16 #5
- men hvad Søren har du gang i i denne linie:
    if (document.forms["pg"+i].navn != '') {

Hvad mener du med det?  :)
Avatar billede olebole Juniormester
03. maj 2005 - 11:18 #6
... mon ikke, der skulle stå:
    if (document.forms["pg"+i].navn.value != '') {
Avatar billede donslund Nybegynder
03. maj 2005 - 11:35 #7
Mine formularer har starten således: <form name="pg1" method=post>

Og javascriptet ser nu således ud:

function indsaet_personer() {
    alert("Check, at jeg er nået her til!");
    for (i=1;i<11;i++) {
        if (document.forms["pg"+i].navn.value != '') {
          alert(i+" - RecordId = ");
          document.forms["pg"+i].action = "/page370.aspx?action=post&layoutid=1&docid=0&listid=&recid=";
          document.forms["pg"+i].submit();
        }
    }
}


Det kaldes med: <input name='send' type=button onClick="indsaet_personer();" value='Send'>

Det giver stadigvæk: et objekt var ventet
Avatar billede olebole Juniormester
03. maj 2005 - 12:14 #8
Hvis du i alle dine forms har et felt, der hedder "navn", er det ikke i scriptet, fejlen ligger. Så må du lægge et link, hvis du skal have hjælp  :)

- men jeg forstår slet ikke, hvad det er, du prøver. Når du submitter den første form, reloades siden jo - og resten af løkken afvikles ikke.
Avatar billede donslund Nybegynder
03. maj 2005 - 12:35 #9
Det der egentlig skal ske er, at når jeg trykker på knappen sendes de data der er i Form1 til en Iframe som putter tingene i en database. Derefter smides de data der er i form2 ned i Iframen og så videre. Jeg har ikke så meget kontrol over siderne da det ligger i et cms system. Men jeg ved, at dette kan lade sig gøre.
Avatar billede olebole Juniormester
03. maj 2005 - 12:49 #10
Hvis det er tilfældet, må der være et target på dine forms - og så ser de ikke sådan ud, som du skrev. Der er ikke fejl i scriptet her, så du må lave en fejl et andet sted. Tættere er det ikke muligt at komme uden et link
Avatar billede donslund Nybegynder
03. maj 2005 - 15:00 #11
Jeps. Det var target der var problemet. Drop et svar.
Avatar billede olebole Juniormester
03. maj 2005 - 17:11 #12
oki ... det var rart at få det opklaret og finde dyret  ;o)
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