Avatar billede no_doubt Nybegynder
24. juli 2008 - 13:54 Der er 18 kommentarer og
1 løsning

2 ens textfelter

Hvordan kan man få den samme tekst der bliver skrevet i et tekstfelt til at stå i et andet, gerne løbende MENS man taster.
Avatar billede w13 Novice
24. juli 2008 - 14:02 #1
F.eks.:

<input type="text" id="felt1" onkeypress="document.getElementById('felt2').value=this.value"><br>

<input type="text" id="felt2" onkeypress="document.getElementById('felt1').value=this.value">
Avatar billede w13 Novice
24. juli 2008 - 14:03 #2
Hov, det skal være onkeyup:

<input type="text" id="felt1" onkeyup="document.getElementById('felt2').value=this.value"><br>

<input type="text" id="felt2" onkeyup="document.getElementById('felt1').value=this.value">
Avatar billede no_doubt Nybegynder
24. juli 2008 - 14:04 #3
Nummer 2 skal ikke opdatere nummer 1
Avatar billede no_doubt Nybegynder
24. juli 2008 - 14:07 #4
Virker det IKKE i firefox 3, synes den fejler der.
Avatar billede w13 Novice
24. juli 2008 - 14:14 #5
Du fjerner bare onkeyup="document.getElementById('felt1').value=this.value" fra nr. 2 så, super simpelt. =)
Avatar billede w13 Novice
24. juli 2008 - 14:15 #6
Tjekker lige FF 3
Avatar billede no_doubt Nybegynder
24. juli 2008 - 14:15 #7
Okay...
Avatar billede w13 Novice
24. juli 2008 - 14:16 #8
Virker perfekt i mit FF3.

Hvilken fejl oplever du da?
Avatar billede no_doubt Nybegynder
24. juli 2008 - 14:17 #9
At den ikke viser teksten fra nr. 1 I nummer 2
Avatar billede w13 Novice
24. juli 2008 - 14:21 #10
Det gør den fint hos mig. Det er også 100% valide standardkoder, jeg bruger, så det kan ikke ikke virke i en normal browser med JavaScript slået til. =)

Siger fejlkonsollen noget?
Avatar billede olebole Juniormester
24. juli 2008 - 14:49 #11
<ole>

Prøv at lægge et link. Ellers er det lidt svært at finde din fejl - for den ligger ikke i w13's kode  =)

/mvh
</bole>
Avatar billede no_doubt Nybegynder
24. juli 2008 - 14:55 #12
Avatar billede olebole Juniormester
24. juli 2008 - 15:02 #13
1) Dit textarea har ikke en ID - kun en name attribut. Derfor virker getElementById naturligvis ikke
2) Et textarea har ikke en value. Brug i stedet syntaksen:
    this.form.leveringsadresse.firstChild.nodeValue = this.value

- eller:
    document.getElementById('leveringsadresse').firstChild.nodeValue = this.value
Avatar billede w13 Novice
24. juli 2008 - 15:02 #14
Det er faktisk IE, der gør det forkert. Du bruger jo et textarea og har ikke noget id på det!

Sæt id="leveringsadresse" på textareaet.
Avatar billede no_doubt Nybegynder
24. juli 2008 - 15:09 #15
gjore som olebole først, med den sidste... den ville IKKE.

Så satte jeg et id på leveringsadressen...jups...nu dutter det
Avatar billede w13 Novice
24. juli 2008 - 15:11 #16
Godt at høre. Og tak for point! ;)
Avatar billede olebole Juniormester
24. juli 2008 - 15:54 #17
åhhh ja, mit første eksempel kræver, der står mindst ét tegn i textarea'et. Det kan blot være et mellemrum, men jeg plejer altid selv at skrive et '&nbsp;', når jeg ved, jeg skal bruge en tekstnode i elementet:
    <textarea name="leveringsadresse">&nbsp;</textarea>

I en event handler i et input, betyder:
    this.form -> formen, inputtet ligger i
    this.form.leveringsadresse -> et element i formen, som har name="leveringsadresse"

Hvis du skriver:
    this.form.leveringsadresse.firstChild

- tager du fat i elementets første node, der i et textarea altid er en tekstnode ... hvis det altså overhovedet indeholder noget.
Ellers vil det udløse en fejl, når du prøver at sætte tekstnodens værdi til noget nyt ... den eksisterer jo ikke  ;o)

Derfor skal der stå mindst et mellemrum eller andet blanktegn, før du kan få det første eksempel til at virke
Avatar billede olebole Juniormester
24. juli 2008 - 16:16 #18
- hov, begge eksempler bruger faktisk den fremgangsmåde  ;o)

I øvrigt passer det kun delvist, da jeg skrev, at et textarea ikke har en value attribut. Sålænge vi taler markup, eksisterer den ikke - hvorfor man f.eks. ikke kan bruge:
    ELEMENT.setAttribute("value", "En tekst ...");

Til gengæld er value på et textarea del af W3C's HTML-DOM Level 2. Derfor er denne syntaks stadig valid:
    ELEMENT.value = "En tekst ...";

NB: Ved brug af denne syntaks ændres indholdet at formkontrollen, men elementets indhold bør forblive det samme. Derfor håndterer IE denne kode forkert, mens FF håndterer den korrekt:

<script type="text/javascript">
function foo(oTxt) {
    oTxt.value = "HeyHep ...!";
  // Denne alert burde returnere 'Mit textarea'
    alert(oTxt.firstChild.nodeValue);
}
</script>

<form action="" method="post">
<button onclick="foo(this.form.leveringsadresse);return false">TEST</button>
<p><textarea name="leveringsadresse" style="width:300px;height:150px">Mit textarea</textarea></p>
</form>
Avatar billede olebole Juniormester
24. juli 2008 - 16:20 #19
http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-24874179

Attributes -> value:

"Represents the current contents of the corresponding form control, in an interactive user agent. Changing this attribute changes the contents of the form control, but does not change the contents of the element."
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