2016-03-29 5 views
-2

私はjavascriptを学び、その言語についてもっと理解しようとしています。 主な問題は、変数の初期化の位置です。 関数内に置くとうまくいきますが、外に出ても関数がうまくいきませんが、 "marcaDeSkate"という名前の別の変数でも機能がうまく機能していないと思うことさえあります。あなたはaddSkate関数内txtSkate変数を初期化する必要がJavaScriptの変数を理解する

<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

問題は、あなたがページが読み込まれるとすぐにmarcasList' 'の値に' marcaDeskate'を設定しているです。ユーザが 'marcasList'の内容を変更した場合、' marcaDeskate'は更新されません。あなたはそれを使用するたびに価値を得る必要があります。他の入力と同じです。 –

+1

割り当てられたときに値を持たないからです。ボタンを押した後の値が何であるかを確認する必要があります。そうでない場合は、ページが作成されたときの値と同じです。 –

+0

関数の外部にあるvarを要素に等しく割り当てます。クリックすると、要素の値にアクセスし、ターゲットのinnerHTMLを追加します。あなたはほとんどそれを持っています。 – Bosworth99

答えて

0

は、ここで私が一緒に遊んでいるコードです。ユーザーが入力値を書き込む前に、変数txtSkateを初期化しています。

これを試してみてください:

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>

関連する問題