2016-05-27 8 views
0
<html> 
<body> 
    <input type="text" value="0" id="x1" onblur="ThisEvent()"/>x1</br>    
    <input type="text" value="0" id="x2">x2  </br> 

<script> 
    var x1  = document.getElementById("x1");  
    var x2  = document.getElementById("x2"); 

function ThisEvent(){ 
    if (x1=1) {x2.value--;}else{ 
    if (x1=2) {x2.value++;}else{ 
    if (x1=3) {x2.value+0;}}} 
    } 
</script> 
</body> 
</html> 

は、最初のif文だけを起動し、else状況を無視しているようです。いかなる助けも大いにありがたくなるでしょう。は、複数のif文をonblurでサポートしていますか?

+0

誤ったブール代入のようにしました。つまり、 'if(x1 == 1)'でなければなりません。 – SaidbakR

答えて

1

=は代入演算子です。

== & ===は比較演算子です。 x1=1がtruthyである、1を返すので、それが最初のifのステートメントで停止しています

を(それらの間の差をthis questionを参照してください)。

比較演算子を使用すると、x1.value == 1を使用して<input>の数値を比較するか、x1.value === "1"を使用する必要があります。

+0

私は3つの状況すべてに対して==を入れようとしましたが、それは全く起こりません。 –

+0

===と同じ結果を返します。 –

+0

@bretsimonson 'を使うのを忘れました。値 '。 – Barmar

0
<html> 
<body> 
    <input type="text" value="0"id="x1" onblur="ThisEvent()">x1  </br> 
    <input type="text" value="0" id="x2"  > x2  </br> 
<script> 
    var x1  = document.getElementById("x1");  
    var x2  = document.getElementById("x2"); 

function ThisEvent(){// needs a lot of work done to it 
    if (x1.value==1) {x2.value--;}else{ 
    if (x1.value==2) {x2.value++;}else{ 
    if (x1.value==3) {x2.value+0;}}}} 
</script> 
</body> 
</html> 
+0

大いに感謝4castleとBarmar –

関連する問題