2016-11-20 3 views
-1

Ich arbeite an einem Texteditor als Teil eines Schulprojekts und ich habe ein kleines Problem mit meinem Speichern und Öffnen von Code.Speichern und öffnen Sie den Inhalt eines Textfelds

Hier sind meine Knöpfe:

<button id="gu" onclick="save()">Save</button> 
<button id="ab" onclick="open()">Open</button> 

Hier ist mein Textfeld:

<textarea name="comment" rows=30 cols=101 id="texto"></textarea> 

Und hier ist meine Javascript-Funktionen:

function save(){ 
    gu = document.getElementById("texto"); 
    localStorage.setItem("texto",gu); 
    console.log(texto+"="+gu); 
} 

function open(){ 
    console.log("Abierto") 
    document.getElementById('texto').innerHTML=gu; 
} 

Mein Ziel ist es, dass, wenn etwas schreiben und drücken Sie dann die "Speichern" Taste, der Inhalt in meinem textarea ist gespeichert, und wenn ich die "Öffnen" b drücken Es zeigt, was ich auf der textarea schrieb.

Haben Sie eine Idee, wie Sie meinen Code reparieren können?

Sorry, wenn mein Englisch schlecht ist.

+0

Verwenden Sie Code-Snippet. –

Antwort

1

Hier gehen Sie geschehen: https://jsfiddle.net/cinerobert/qwgv18r5/

function save() 
{ 
    localStorage.setItem("someitem", document.getElementById("texto").value); 
    document.getElementById("texto").value = ""; 
    console.log(texto + "=" + gu); 
} 

function retrieve(){ 
     console.log("Abierto") 
     document.getElementById("texto").value = localStorage.getItem("someitem"); 
} 

Sie können nicht geöffnet werden() verwenden, als Funktion Namen, weil es bereits eine eingebaute Funktion in Javascript, also änderte ich es in retrieve(). Siehe hier: http://www.w3schools.com/jsref/met_win_open.asp

Gibt es einen Grund, warum Sie setItem() verwenden müssen? Eine Variable (gu) und setItem ist redundant. Es würde so oder so funktionieren.

Um auch den Text innerhalb eines Textbereichs zu erhalten und einzustellen, muss man value() verwenden.

Ich habe auch die Funktion save() geändert, so dass es das Textfeld löscht, so dass Sie etwas passieren sehen können, wenn Sie auf retrieve() klicken.

0

Im Folgenden sind die Dinge müssen

function save() 
{ 
    gu = document.getElementById("texto"); 
    localStorage.setItem("texto",gu.innerText); //here you were saving the dom object not the text inside 
    console.log(texto+"="+gu.innerHTML); 

} 

function open() 
{ 

console.log("Abierto") 
document.getElementById('texto').innerHTML=localStorage.getItem("texto"); //here you need to get the text from your local storage 

}

+1

Textareas haben nicht 'innerText' oder' innerHTML'. Übrigens ist "innerText" sowieso eine nicht standardmäßige Eigenschaft. –

Verwandte Themen