2016-03-29 6 views
-2

Ich lerne JavaScript und versuche, mehr über die Sprache zu verstehen. Das Hauptproblem ist die Position der Initialisierung der Variablen. Wenn ich es in die Funktion einfügen funktioniert gut, aber wenn es aus ist funktioniert überhaupt nicht, aber die andere Variable namens "marcaDeSkate" sogar dachte, es ist aus der Funktion funktioniert gut.JavaScript-Variablen verstehen

Hier ist der Code, den ich mit bin zu spielen:

<label name="marcasDeSkate">Marcas de Skate:</label> 
<select id="marcasList" name="marcaList"> 
    <option value="Darkstar">Darkstar</option> 
    <option value="Element">Element</option> 
    <option value="Girl">Girl</option> 
</select> 
<input type="text" name="skatebrand" id="txtSkateBrand" /> 
<input type="button" value="Add Skate" id="btnAdd" /> 
<p id="demo"></p> 
<script> 
var marcaDeskate = document.getElementById("marcasList").value 
var btnAdd = document.getElementById("btnAdd"); 
var txtSkate = document.getElementById("txtSkateBrand").value /* the variable I'm testing */ 
btnAdd.addEventListener("click", addSkate); 
/* 
function addSkate() 
{ 

    alert(marcaDeskate + " " + txtSkate); 
} 
*/ 
function addSkate() { 
    document.getElementById("demo").innerHTML += marcaDeskate + " " + txtSkate + "<br/>"; 
} 
</script> 
+2

Das Problem ist, Sie Einstellung 'marcaDeskate' auf den Wert von' marcasList', sobald die Seite geladen wird. Wenn der Benutzer ändert, was in "marcasList" ist, wird "marcaDeskate" nicht aktualisiert. Sie müssen den Wert jedes Mal abrufen, wenn Sie ihn verwenden möchten. Gleiches gilt für alle anderen Eingaben. –

+1

Es ist, weil es keinen Wert hat, wenn es zugewiesen wird. Sie müssen überprüfen, was der Wert ist, nachdem Sie auf die Schaltfläche geklickt haben, oder es ist alles, was es war, als die Seite erstellt wurde. –

+0

Weisen Sie die Variable außerhalb der Funktion dem Element zu. Klicken Sie bei einem Klick auf den Wert des Elements und fügen Sie dann das innere HTML Ihres Ziels hinzu. Du hast das meiste davon. – Bosworth99

Antwort

0

Sie benötigen die txtSkate Variable innerhalb der addSkate Funktion init. Sie initialisieren die Variable txtSkate, bevor der Benutzer den Eingabewert schreibt.

Versuchen Sie folgendes:

var marcaDeskate = document.getElementById("marcasList").value 
 
var btnAdd = document.getElementById("btnAdd"); 
 
var txtSkate; 
 

 
btnAdd.addEventListener("click", addSkate); 
 

 
function addSkate() { 
 
    txtSkate = document.getElementById("txtSkateBrand").value; 
 
    document.getElementById("demo").innerHTML += marcaDeskate + " " + txtSkate + "<br/>"; 
 
}
<label name="marcasDeSkate">Marcas de Skate:</label> 
 
<select id="marcasList" name="marcaList"> 
 
    <option value="Darkstar">Darkstar</option> 
 
    <option value="Element">Element</option> 
 
    <option value="Girl">Girl</option> 
 
</select> 
 
<input type="text" name="skatebrand" id="txtSkateBrand" /> 
 
<input type="button" value="Add Skate" id="btnAdd" /> 
 
<p id="demo"></p>