2013-10-12 2 views
0

У меня есть два текстовых поля и одна кнопка. Я помещаю номера в первом текстовом поле и нажимаю кнопку, чтобы добавить число, которое отображается во втором поле, пока оно не достигнет 1000. Но оператор if не работает по какой-либо причине.Если инструкция не работает? Javascript

Это прекрасно работает:

<html> 
<title>Ask7</title> 
<script> 
var total=0; 

function calculate() 
{ 

    var box1; 
    box1=parseFloat(document.getElementById("box1").value); 
    total=total+box1; 
    document.getElementById("box2").innerHTML=""; 
    document.getElementById("box2").value=total; 


} 
</script> 
<body> 

<h3>Give num:</h3> 
<input id="box1" type="text"></input> 
<button onclick="calculate()" type="button">ADD</button> 
<br> 

<h3>Total:</h3> 
<input id="box2" readonly="readonly" type="text"></input> 
</body> 
</html> 

Это не:

<html> 
<title>Ask7</title> 
<script> 
var total=0; 

function calculate() 
{ 

if(total<1000) 
{ 
    var box1; 
    box1=parseFloat(document.getElementById("box1").value); 
    total=total+box1; 
    document.getElementById("box2").innerHTML=""; 
    document.getElementById("box2").value=total; 
} 
else 
{ 
    alert("OVER 1000!"); 
    break; 
} 

} 
</script> 
<body> 

<h3>Give num:</h3> 
<input id="box1" type="text"></input> 
<button onclick="calculate()" type="button">ADD</button> 
<br> 

<h3>Total:</h3> 
<input id="box2" readonly="readonly" type="text"></input> 
</body> 
</html> 

В принципе я не понимаю, почему, если заявление не работает.

+2

'SyntaxError: непомеченный перерыв должен быть внутри цикл или switch' ... [Узнайте, как ** отладки ** JavaScript] (http://www.netmagazine.com/tutorials/javascript-debugging-beginners) –

+1

Это работает для меня: http://jsfiddle.net/barmar/9ffDg/1/ – Barmar

ответ

1

Удалить break, он не принадлежит к нему.

Я думаю, вы должны иметь свой код, как это:

var total = 0; 

function calculate() { 
    var box1; 
    box1 = parseFloat(document.getElementById("box1").value); 
    total = total + box1; 
    box2 = document.getElementById("box2"); 
    box2.value = total; 

    if (total < 1000) { 
    // do something 
    } else { 
     alert("OVER 1000!"); 
     // break; 
     box2.value = 0; // to clean the value after 1000 
    } 
} 

Demo

+0

По-прежнему он не попадает в если утверждение. – user2874565

+0

Хороший улов, хотя я не думаю, что это вызывает проблему, потому что javascript остановится там, однако код перед этим должен быть выполнен. – Zaffy

+1

@ Zaffy: Нет, 'break' есть синтаксическая ошибка. –

0
... 
else { 
     alert("OVER 1000!"); 

     box2.value = 0; // to clean the value after 1000 

     total = 0; // **** also reset the global var for reuse as still adding over 1000 

} 
+0

В общем, лучше всего вывести объяснения и сформулировать их в терминах «обычной речи». Комментарии, как правило, намекают на идею, но редко рассказывают всю историю. –

+0

Я хотел добавьте комментарий в предыдущие ans, но я не знаю, как это сделать, теперь он wrking :) – Undercover

+0

Я имел в виду «комментарий к коду», не оставляя комментарий. –

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