- og jeg prøver lige med en uddybende forklaring på det med
value, da det måske ikke står krystalklart for alle =)
Man kan betragte TEXTAREA (eller et hvilket somhelst andet element) på (mindst) to forskellige måder:
1) et tag i HTML-koden, som ved sideload implementerer selve elementet på siden.
2) et JS-object - forudsat, vi har kaldt elementet via JavaScript.
Et tag er blot nogle tegn i et tekstdokument. Det kan have forskellige attributer - f.eks:
width,
value eller
placeholder. Disse attributter definerer nogle egenskaber ved det element, det pågældende tag engang vil implementere i en browser.
Et JS-object, der repræsenterer et element på siden, kan du f.eks. oprette med:
var myObject = document.getElementById("myTextArea");
Du kan godt skrive HTML- og JS-kode samtidigt, men selve JS-objektet kan først oprettes, når siden er loaded i browseren.
JS-objektet har nogle egenskaber (properties) - f.eks:
width,
value eller
placeholder. De kan af de førnævnte årsager først tilgås, når siden er loaded og elementet er implementeret. Før siden ligger i en browser, giver begreberne
elementer og
properties ingen mening.
En value attribut og en value property er altså to forskellige ting:
Attribut: en tekststreng i en HTML-kode.
Property: en egenskab ved et eksisterende element i et loaded dokument.
Derfor kan der godt være forskel på, om et element kan/må have en bestemt attribut - og om man kan tilgå den samme egenskab som property på det (med JS kaldte) element.
Jeg kan altså godt skrive:
var myObject = document.getElementById("myTextArea");
myObject.value = "hephey";
- men jeg må
ikke sætte en attribut
value="hephey" i HTML-koden.
Det kan synes som ligegyldig teoretiseren for ældre herrer uden noget fornuftigt at tage sig til - men det er fakstisk ikke uvæsentlige forhold =)