2013-04-15 3 views
0
for (var j=0; j<2; j++){ 
listno=prompt("Enter Item Code","0"); 
listno = parseInt(listno); 

if (listno > 0) { 
    PRODUCT_WANT.push(PRODUCT_LIST[listno]); 
    WANT_PRICE.push(PRICE_LIST[listno]); 
} 

else { 
alert('Invalid Product Code'); 
} 
if (quantno > 0) { 
    quantno=prompt("Enter Quantity","0"); 
    quantno = parseInt(quantno); 
    quantity.push(quantno); 
} 

else { 
alert('Invalid Quantity'); 
} 
}  

Петля работает, но я не хочу, чтобы нужно было установить количество циклов, я хочу, чтобы их можно было разместить, например, 999, а затем можно отменить отмену в строке и иметь петлю отделкаJavascript Запрос внутри цикла

ответ

3

prompt даст значение null, если отмена нажата.

Вы могли бы сделать что-то вроде этого:

while(listno = prompt("Enter Item Code", "0")) { 
    ... 
} 

Редактировать. Результатом prompt будет все, что было написано во входном приглашении, или null, если отмена была нажата. Поскольку null будет оцениваться до false при использовании в состоянии, вы можете использовать его в цикле while, чтобы запустить некоторый код, в то время как запрос вычисляет значение true, т. Е. Будет запрашивать, пока введено действительное число.

Demo

+0

Не могли бы вы уточнить, я только начинающий. сожалею – user2181271

0

То, что вы хотите, это петля в то время как :)

В качестве разработки к Davids ответа: Что в то время как цикл делает не то, что «тело» время цикла выполняется, пока условие встречается. Итак, сначала вы хотите иметь какое-то условие, которое может быть оценено как true, так и false. Если условие истинно, выполняется «тело» цикла while, а в «body» вы можете изменить условие. Давать пример

var i = 0; 
while(i < 20) 
{ 
    i = i+1; 
} 

выше будет работать до тех пор, как я меньше 20.

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