Avatar billede mikmakmuk Nybegynder
23. april 2007 - 14:55 Der er 14 kommentarer og
2 løsninger

opdatere <dib> fra <form>

Hej Eksperter,

Jeg har et <div id=mitdiv></div> hvor jeg gerne vil have vist nogle værdier fra en form.
Hvordan gør jeg det?

Min form:

<form>
<input type="text" name="text1">

<input type="submit" name="submit" value="send">
</form>


Jeg vil allehelst have at mitdiv bliver opdateret for hvert tastetryk

Det er et eller andet med getelementbyID
Avatar billede tobias_louv Nybegynder
23. april 2007 - 15:08 #1
<form onChange="document.gelElementById('mindiv').innerHTML=document.navn.tekst.value" name="navn">
<input name="tekst" value="" type="text">

Kan det bruges?
Avatar billede mclemens Nybegynder
23. april 2007 - 15:13 #2
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>
</head><body>

<form>
<input type="text" name="text1" onkeyup="document.getElementById('diven').firstChild.nodeValue=this.value;">

<input type="submit" name="submit" value="send">
</form>

<div id="diven">&nbsp;</div>

</body></html>
Avatar billede tobias_louv Nybegynder
23. april 2007 - 15:14 #3
Det kan også være, du skal smide "onChange" på hvert inputfelt.
Du kan jo prøve dig frem :-)

Smider lige et svar, hvis du skulle kunne bruge det.
Avatar billede mclemens Nybegynder
23. april 2007 - 15:34 #4
Kaster lige et svar også ...
Avatar billede mikmakmuk Nybegynder
23. april 2007 - 19:14 #5
takker
Avatar billede mclemens Nybegynder
23. april 2007 - 19:25 #6
Tak for point.
Avatar billede mikmakmuk Nybegynder
23. april 2007 - 19:36 #7
Hvorfor kan jeg ikke gøre sådan her. Jeg har flere felter som skal vises

<span class="preview_titel" id="preview1"></span>
<span class="preview_tekst" id="preview2"></span>

<form action="" method="post">
<table>
    <tr>
        <td>titel:</td>
        <td><input type="text" name="titel" onkeyup="document.getElementById('preview1').firstChild.nodeValue=this.value;"></td>
    </tr>
    <tr>
        <td>Adresse til webside:</td>
        <td><input type="text" name="webside" value="http://"></td>
    </tr>
    <tr>
        <td style="vertical-align:top">tekst:</td>
        <td><textarea rows="10" cols="30" onkeyup="document.getElementById('preview2').firstChild.nodeValue=this.value;">
        </textarea>
        </td>
    </tr>       
    <tr>
        <td>
            <input type="button" name="tilbage" value="tilbage" onclick="java script:history.back(-1)">
            <input type="submit" name="videre" value="videre">
            <input type="button" name="afbryd" value="afbryd">
        </td>
    </tr>
</table>
</form>
Avatar billede mclemens Nybegynder
23. april 2007 - 19:47 #8
<span class="preview_titel" id="preview1">&nbsp;</span>
<span class="preview_tekst" id="preview2">&nbsp;</span>
- Jeg bruger firstChild.nodeValue og ændrer dermed på
teksten i elementet, istedet for at tildele tekst til
elementet via innerHTML, som bør undgåes - grundet
ændringen skal de to elementer indeholde en tekst.

... Man kan selvfølgelig også bruge createTextNode
og appende / remove child elements, men det er lidt
for omstændeligt til formålet. Ret evt teksten i
de to felter til "Her kommer din tekst" eller
noget andet. Hvis det ønskes kan du også bruge:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

</head><body>
<span class="preview_titel" id="preview1" style="display:none;">&nbsp;</span>
<span class="preview_tekst" id="preview2" style="display:none;">&nbsp;</span>

<form action="" method="post">
<table>
    <tr>
        <td>titel:</td>
        <td><input type="text" name="titel"

onkeyup="e=document.getElementById('preview1');e.style.display=this.value.length!=0?'inline':'none';e.firstChild.nodeValue=this.

value;"></td>
    </tr>
    <tr>
        <td>Adresse til webside:</td>
        <td><input type="text" name="webside" value="http://"></td>
    </tr>
    <tr>
        <td style="vertical-align:top">tekst:</td>
        <td><textarea rows="10" cols="30"

onkeyup="e=document.getElementById('preview2');e.style.display=this.value.length!=0?'inline':'none';e.firstChild.nodeValue=this.

value;">
        </textarea>
        </td>
    </tr>     
    <tr>
        <td>
            <input type="button" name="tilbage" value="tilbage" onclick="java script:history.back(-1)">
            <input type="submit" name="videre" value="videre">
            <input type="button" name="afbryd" value="afbryd">
        </td>
    </tr>
</table>
</form>
</body></html>


Ret de 2 x e.style.display=this.value.length!=0?'inline':'none';
i ovenstående til e.style.display='inline';
- hvis de ikke skal dukke op og forsvinde ved sletning af tekst i elementet.
Avatar billede mikmakmuk Nybegynder
23. april 2007 - 20:05 #9
du er da for sej
Avatar billede mikmakmuk Nybegynder
23. april 2007 - 20:05 #10
mange tak
Avatar billede mclemens Nybegynder
23. april 2007 - 20:07 #11
Velbekomme ;o)
Avatar billede mikmakmuk Nybegynder
23. april 2007 - 20:14 #12
Lige en ting til. Jeg vil gerne have at de 2 <span> s er der også selv om der ikke er noget i dem. De bliver jo sat til display. Kunne jeg ikke skrive

onkeyup="e=document.getElementById('preview2');e.style.display=this.value.length!=0?'inline':'inline';e.firstChild.nodeValue=this.
Avatar billede mikmakmuk Nybegynder
23. april 2007 - 20:14 #13
og sætte

<span class="preview_titel" id="preview1" style="display:inline;">&nbsp;</span>

burde de så ikke altid blive vist :-)
Avatar billede mclemens Nybegynder
23. april 2007 - 20:21 #14
Joh, men hvorfor ikke bare sige:
<span class="preview_titel" id="preview1">&nbsp;</span>
<span class="preview_tekst" id="preview2">&nbsp;</span>

og

e=document.getElementById('preview1');e.firstChild.nodeValue=this.value;
e=document.getElementById('preview2');e.firstChild.nodeValue=this.value;

... De er jo display:inline; som standard uden at de har den style,
og af denne årsag behøver de så heller ikke få tildelt det via js.
- Det andet var jo mere hvis de skulle vises / skjules ...
Avatar billede tobias_louv Nybegynder
23. april 2007 - 23:28 #15
Hmm, brugte du overhovedet mit svar? For i så fald, skulle mclemens vel have points.
Jeg smuttede på arbejde - og har ikke gidet kigge andet igennem, end at jeg fik points?

/Mvh
Avatar billede mclemens Nybegynder
24. april 2007 - 08:32 #16
Tobias, skidt med de point ;o)

mikmakmuk, en rettelse til 23/04-2007 20:21:19

Istedet for:
e=document.getElementById('preview1');e.firstChild.nodeValue=this.value;
e=document.getElementById('preview2');e.firstChild.nodeValue=this.value;

Kunne vi ligeså godt sige (da vi ikke har behov for "e" genvejen til elementet
document.getElementById('preview1').firstChild.nodeValue=this.value;
document.getElementById('preview2').firstChild.nodeValue=this.value;
... Det hjælper altid med lidt søvn ...
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