как остановить цикл FOR после ошибки
#1
Отправлено 17 мая 2012 - 09:33
var input = window.document.getElementsByTagName('input'); for (var i = 0; i<input.length; i++) { if(window.document.defaultView.getComputedStyle(input[i]).getPropertyValue('background-color') == 'rgb(204, 230, 255)') {testResult='passed';} else {testResult='failed';};}
|testResult
Проверяет всё хорошо, но!, беда в том, что результат при echo ${testResult} он показывает только из последнего input, и я не вижу, если ли ошибки в остальных инпутах. Как решить проблему? Может быть можно как-то при ошибке где-то в середине остановить цикл, и записать в testResult значение failed?
{testResult = 'failed'; break;}} не помогает, так мой результат теста всегда failed, если и цвета все правильные
#2
Отправлено 17 мая 2012 - 11:34
Можно как то так:есть вот такая вот проверочка: storeEval|
var input = window.document.getElementsByTagName('input'); for (var i = 0; i<input.length; i++) { if(window.document.defaultView.getComputedStyle(input[i]).getPropertyValue('background-color') == 'rgb(204, 230, 255)') {testResult='passed';} else {testResult='failed';};}
|testResult
Проверяет всё хорошо, но!, беда в том, что результат при echo ${testResult} он показывает только из последнего input, и я не вижу, если ли ошибки в остальных инпутах. Как решить проблему? Может быть можно как-то при ошибке где-то в середине остановить цикл, и записать в testResult значение failed?
{testResult = 'failed'; break;}} не помогает, так мой результат теста всегда failed, если и цвета все правильные
storeEval|
var testResult = "passed"; var input = window.document.getElementsByTagName('input'); for (var i = 0; i<input.length; i++) { if(window.document.defaultView.getComputedStyle(input[i]).getPropertyValue('background-color') != 'rgb(204, 230, 255)') {testResult='failed'} else {};} return testResult
|testResult
Прерывания не будет, но testResult получите правильный. Если вам надо знать конкретно каком из импутов ошибка, то используйте массив.
#3
Отправлено 17 мая 2012 - 12:18
#4
Отправлено 17 мая 2012 - 12:33
не проверял Ваш метод, сделал так, работает: var input = window.document.getElementsByTagName('input');Можно как то так:
есть вот такая вот проверочка: storeEval|
var input = window.document.getElementsByTagName('input'); for (var i = 0; i<input.length; i++) { if(window.document.defaultView.getComputedStyle(input[i]).getPropertyValue('background-color') == 'rgb(204, 230, 255)') {testResult='passed';} else {testResult='failed';};}
|testResult
Проверяет всё хорошо, но!, беда в том, что результат при echo ${testResult} он показывает только из последнего input, и я не вижу, если ли ошибки в остальных инпутах. Как решить проблему? Может быть можно как-то при ошибке где-то в середине остановить цикл, и записать в testResult значение failed?
{testResult = 'failed'; break;}} не помогает, так мой результат теста всегда failed, если и цвета все правильные
storeEval|
var testResult = "passed"; var input = window.document.getElementsByTagName('input'); for (var i = 0; i<input.length; i++) { if(window.document.defaultView.getComputedStyle(input[i]).getPropertyValue('background-color') != 'rgb(204, 230, 255)') {testResult='failed'} else {};} return testResult
|testResult
Прерывания не будет, но testResult получите правильный. Если вам надо знать конкретно каком из импутов ошибка, то используйте массив.
var testResult = 'passed';
for(var i = 0; i<input.length; i++) {
if(window.document.defaultView.getComputedStyle(input[i]).getPropertyValue('background-color') != 'rgb(204, 230, 255)') {
testResult = 'failed';
break;
}
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных