HTML-Fehler können keine set-Eigenschaft null (anonyme Funktion)
Ich versuche zu speichern, ein textbox-Wert in den lokalen Speicher aber ich bin Fang einer " Uncaught TypeError: Cannot set property 'onclick' null und nicht genau zu wissen, warum. Alles scheint darauf verwiesen werden, richtig. Einsicht wäre dankbar.
<script type="text/javascript">
var save_button = document.getElementById('Save')
save_button.onclick = saveData;
function saveData()
{
var input = document.getElementById("saveServer");
localStorage.setItem("server", input.value);
var storedValue = localStorage.getItem("server");
};
</script>
<label for="serveri">Server:</label>
<input type='text' name="server" id="saveServer" />
<button onclick="saveData()" type="button" value="Save" id="Save">Save</button>
Wenn das oben genannte nicht mein problem, hier ist das ganze in JSFiddle: http://jsfiddle.net/mGfeu/
Warum haben Sie eine inline-handler sowie einen definierten listener?
InformationsquelleAutor user2892178 | 2013-10-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schreiben Sie das Skript, nachdem der Körper. Der DOM ist nicht geladen, wenn Ihr Skript ausgeführt wird. Daher gibt es kein element mit der id 'Speichern'.
InformationsquelleAutor Sandeep Nayak
Du suchst das element, bevor es gerendert wird auf der Seite.
Ihre Geige ist Durcheinander, da Sie den script-block in die HTML-markup und JavaScript-panel. Der in das HTML-markup ist die Entlassung der Fehler, da es nicht läuft im onload-oder-Dokument bereit.
Das problem ist noch die Tatsache, Sie nennen es, bevor das element gerendert wird. Es ist so wie ich rufe deinen Namen, bevor Sie das Zimmer betrat. Ich werde keine Antwort erhalten. Führen Sie den code-Fenster.onload oder ein Dokument bereit, wie ich schon sagte in meiner Antwort.
InformationsquelleAutor epascarello
Ihr code ausgeführt wird, bevor der DOM fertig ist (so die
.getElementById
finden nicht Ihr element)Den code ändern, um
denn das ist die cross-browser Weg, es zu tun
Ich bin so froh, dass ich nicht irgendwelche Gründe, nicht zu verwenden jquery
vereinbart, obwohl, wenn die nur den nutzen für die
load
event, jquery ist übertrieben..InformationsquelleAutor Gabriele Petrioli
Ihre Geige funktioniert, wenn Sie das Skript (die Sie gerade brauchen, um das html aus dem Körper und legen Sie es in den js-Bereich nur, weil, dass ist mit ein onload-script zum Rendern:
http://jsfiddle.net/spacebean/mGfeu/1/
Er zurückkehrte, das localStorage-element richtig und alles wird gut.
Für Ihren code so stellen Sie sicher, wickeln Sie es in ein onload-Ereignis, z.B.:
InformationsquelleAutor spacebean