01. juni 2012 - 13:59Der er
18 kommentarer og 1 løsning
Automatisk indsættelse af tekst i flere felter
Hej Eksperter!
Jeg sidder med et script, hvor man skal udfylde en række felter (21 stykker). Alt afhængig af hvad man klikker på, skal der indsættes noget forskelligt.
Er der mulighed for at man kan lave således at hvis man trykker på KNAP 1, så indsætter den nogle bestemte værdier (tekst) i disse felter, og nogle andre ved KNAP 2 og KNAP 3. Jeg kunne forestille mig det i javascript, men det er ikke min stærke side desværre.
@dounie: Det er præcist det, ronols prøver at hjælpe dig med i #1 =)
Teksterne skal jo komme et sted fra, så enten må du opbevare dem i et array, eller også må du hente dem hen ad vejen. Er der tale om mange tekster/muligheder, er det ikke særlig hensigtsmæssigt at have dem alle liggende i dokumentet. Så er det bedre at foretage forespørgsler med Ajax, når der bliver brug for dem
Ja, forstod det som noget javascript der skulle bygges videre på, hvilket jeg ikke kan.
Men problemet for mig er så, hvordan jeg via. et link <a href="et eller andet">KNAP 1</a> får det array med teksterne til at blive indsat i alle 21 felter ved et klik (allesammen noget forskelligt.).
Hvert link indeholder et array, med en bestemt tekst til hvert felt.
Så trykker man f.eks. på KNAP 2, og de 21 forskellige tekster bliver sat ind i hvert input-felt. Trykker man så på KNAP 3, så erstatter den de nuværende 21 forskellige tekster med 21 andre.
Det er det eneste der skal ske. Det skal jo være dynamisk, dvs. den skal ikke opdatere siden ved at man trykker på et af de 3 links.
Hvordan ser dine felter ud? Vi skal have fundet 21 felter, og skal vi undgå en kæmpe kode, må vi finde en let måde at genkende dem på. Det kan f.eks. være udfra name eller id attributter, eller det kan være udfra placering i koden
Jeg beklager det meget sene svar, men jeg har åbenbart ikke modtaget en mail om at der var kommet et nyt (eller to nye) besvarelser på indlægget.
Jeg har afprøvet din kode, og det er næsten sådan det skal fungerer! Men problemet er at min 21 felter hedder subjects[] allesammen. Jeg har nu givet dem et unikt ID allesammen: btn_0 - btn_20, dvs. vi har 21 unikke ID'er på de felter jeg gerne vil have fyldt ud.
Det skal være sådan at der som nu er tre knapper. Trykker man på knappe 1, så indsætter den i alle de 21 felter bestemte værdier. Knap 2 er det nogle andre osv. Det skal som det er nu, selv kunne bestemmes i javascriptet.
Som det er nu, indsætter den også fra de andre tekstværdier i javascriptet, når man f.eks. trykker på knappe 1.
"Som det er nu, indsætter den også fra de andre tekstværdier i javascriptet, når man f.eks. trykker på knappe 1." >> Det forstår jeg ikke. Scriptet i #8 gør ikke
Hvis man trykker på <button id="btn_1" onclick="setFields(this)" type="button">Knap 1</button>, indsætter den ["foo", "Tekst 1 (foo)", "Tekst 1 (bar)", "Tekst 1 (baz)"], i vores tre felter <input name="foo" type="text">, <input name="bar" type="text"> og <input name="baz" type="text">. Men de har jo hvert et forskelligt navn, og det jeg skal bruge er, at man trykker på fx knap 1, og så indsætter den et array med 21 tekster/værdier i 21 felter, der hvert har det samme navn, men et forskelligt ID.
iøvrigt genbruger du id="headline" og id="btn_1" til id="btn_3", dem må man ikke <div id="headline">Fag</div> <div id="headline">Vægt</div> ..
løsning lav det om til en class <div class="headline">Fag</div> husk at rette i css også
men jeg ville nu stadig overveje en ajax løsning, for som olebole skriver i #3 Er der tale om mange tekster/muligheder, er det ikke særlig hensigtsmæssigt at have dem alle liggende i dokumentet. Så er det bedre at foretage forespørgsler med Ajax, når der bliver brug for dem
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.