2017-04-09 13 views
1

document.getElementById("outcome").valueを変数outcomeに割り当てます。 ボタンをクリックすると、idが "outcome"の入力値を "Something"に設定したいと思います。フォーム入力の値を設定できません

しかし、以下のコードを実行すると、入力フォームの結果が設定されませんでした。 入力フォームの結果は何も起こりません。

function throwDice() { 

    var point=document.getElementById("point").value; 
    var outcome=document.getElementById("outcome").value; 
    outcome=Somthing; 
} 

その後、私はこのコードを修正します。

function throwDice() { 

    var point=document.getElementById("point").value; 

    document.getElementById("outcome").value="Something"; 
} 

私が行うすべては、それが直接document.getElementById("outcome").valueに可変の成果と アサイン「何か」を割り当てる削除しています。 この場合、入力フォームの結果の値は「Something」です。

私の質問は、outcome="Something"が動作しない理由です。

+0

変数はプロパティへの参照ではありません。私のひどい英語、あなたは私の質問に答えるが、 – Bergi

答えて

2

状況:あなたの最初のコードで

あなたが書くので、もし、あなただけの、"Something"outcome変数の値を上書きする代わりにidoutcomeを持つ要素にそれを書いている:

説明:

outcome変数を宣言し、その値を入力値に設定します。

var outcome=document.getElementById("outcome").value; 

そして、ここでは、この行では、したがって、この場合にはoutcome変数はちょうどあなたが"Something"にそれを変更し、その後、入力された値を保持して"Something"

outcome=Somthing; 

outcome変数をリセットしています。

あなたの質問に答えてください:なぜoutcome = "Something"は動作していませんか?の場合、outcomeinput要素valueを参照していませんが、valueしか保持していません。言い換えれば

は、だからあなたの最初のコードでは、あなたはちょうどこのような何かをしていた:JavaScriptの変数で

var outcome = 5;  //outcome here is 5 
outcome = "Something"; //outcome is changed to "Something" 

がloosly入力されているが、あなたは、この動作を参照してくださいなぜ、あなたが取ることができますさらに読むためにUnderstanding Loose Typing in JavaScriptを見てください。

+1

。あなたの素早い答えをありがとう。私は間違いを理解しています。 –

+0

あなたが大歓迎です、うれしいことです。 –

+0

@ nuroococoaもしあなたが私の答えを受け入れることができれば助けてください。ありがとうございました –

関連する問題