Avatar billede hhdsleizer Nybegynder
27. juli 2009 - 17:59 Der er 4 kommentarer og
1 løsning

problemer med opdatering af et textarea.

Hej eksperter.
Efter ca 1 time med javascript er jeg stødt i et problem jeg ikke helt forstår hvorfor ikke virker..

Jeg har et textarea:
<textarea name="indhold" rows="10" cols="80" id="indhold"></textarea>

dette vil jeg så gerne kunne opdateret med en javescriptfunktion:

<script type="text/javascript">
    function addcode(kode)
    {
        document.getElementById("indhold").innerHTML += kode;
    }
    </script>

denne funktion kalder jeg med en onclick fra et en række andre elementer fx: onclick=addcode("TEST")

Hvis jeg så trykker på elementet kommer der også korrekt nok TEST ind i textarea.. og trykker jeg flere gange kommer det også korrekt flere gange efter hinanden. Hvis jeg imidlertid selv har skrevet noget i textarea virker funktionen ikke mere(textarea bliver ihvertfald ikke opdateret).

Jeg prøvede så i min fejlfinding at smide en "alert(document.getElementById("indhold").innerHTML);" ind i min funktion. Og den bliver opdateret hver gang med TEST efter hinanden. Her er teksten brugeren har skrevet dog ikke med?

Så hvad jeg ikke forstår er:
1: Hvad går galt så funktionen ikke gør hvad jeg umiddelbart havde i tanker?
2: Hvordan kan det være at opdateringen kun går godt indtil brugeren har skrevet noget i feltet men ikke bagefter(selv hvis brugeren sletter alt han har skrevet)
3: Hvordan kan det være der er forskel på indholdet i textarea og alertbeskeden?

Håber i kan hjælpe mig med dette spørgsmål.

(bruger Firefox som browser hvis det har betydning)
Avatar billede fant0mas Nybegynder
27. juli 2009 - 18:18 #1
function addcode(kode)
{
e = document.getElementById("indhold");
e.value = e.value + kode;
}

Og pas på med giv name og id attributten samme navn, IE har en bug der.
Avatar billede hhdsleizer Nybegynder
27. juli 2009 - 19:27 #2
mange tak for hjælpen. Lægger du et svar så du kan få points?
Avatar billede fant0mas Nybegynder
27. juli 2009 - 19:52 #3
Ellers tak.
Avatar billede hhdsleizer Nybegynder
27. juli 2009 - 19:56 #4
ok.. men mange tak for hjælpen ihvertfald:) lukker.
Avatar billede olebole Juniormester
27. juli 2009 - 21:56 #5
<ole>

Som fant0mas skrev, er det value property'en på objektet, du skal sætte. For sjov kan du prøve at se, hvor forskellige resultater, du får ud af andre metoder (test mindst i IE, FF og Opera):

<p><textarea id="fooBar" style="width:500px;height:200px;">Test </textarea></p>

<p><button onclick="foo()">Test</button></p>

<script type="text/javascript">
var oTxt = document.getElementById("fooBar");
function myAlert(sStr) {
    alert(sStr+"\n\nvalue: "+oTxt.value+"\ninnerHTML: "+oTxt.innerHTML+"\nfirstChild.nodeValue: "+oTxt.firstChild.nodeValue+"\ngetAttribute('value'): "+oTxt.getAttribute('value'));
}
function foo() {
    myAlert("Inden indsættelser:");
   
    oTxt.value = "noget";
    myAlert("Indsat med value:");
   
    oTxt.firstChild.nodeValue += " - og noget mere";
    myAlert("Indsat med firstChild.nodeValue:");
   
    oTxt.innerHTML += " - og noget tredie";
    myAlert("Indsat med innerHTML:");
   
    oTxt.setAttribute("value" , oTxt.getAttribute("value")+" - og noget fjerde");
    myAlert("Indsat med getAttribute/setAttribute:");
}
</script>

- og så har innerHTML i øvrigt aldrig været del af nogen standard  ;o)

/mvh
</bole>
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