2016-05-27 2 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. любая помощь будет принята с благодарностьюделает onblur несколько опорных команд if else?

+0

Ошибка Boolean, вы сделали это как назначение. т.е. он должен быть 'if (x1 == 1)' – SaidbakR

ответ

1

= - оператор присваивания.

== & === - операторы сравнения. (См this question разницу между ними)

Это остановка на первом if заявление, потому что x1=1 возвращает 1, который truthy.

Как только вы переключитесь на использование операторов сравнения, вы должны использовать x1.value == 1, чтобы сравнить числовое значение <input>, или вы могли бы использовать x1.value === "1".

+0

. Я попытался установить == для всех трех ситуаций if, и он вообще не запускает –

+0

с === и теми же результатами –

+0

@bretsimonson Вы забыли использовать '. value'. – 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 –

Смежные вопросы