Проблема с замыканиями
Добрый день!
Прошу помочь разобраться, что не так в моем коде. Есть форма с id="ask". После того, как пользователь заполнил все поля, нужно заменить кнопку отправки на активную. Для проверки пишу функцию, которая должна проверить все поля и в итоге возвратить true, если они все заполнены. Проверка выполняется каждый раз по keypress в поле. function checkInput() { function asks(i) { if(ask.elements[i].tagName != 'INPUT' && ask.elements[i].tagName != 'TEXTAREA') { if(i < ask.elements.length-1) { asks(i+1); } else { return true; } } else { if(ask.elements[i].value == '') return false; else { if(i < ask.elements.length-1) { asks(i+1) } else { // if(i = ask.elements.length-1) return true; } } } } alert(asks(1)); } //отсчет с 1 намеренный, т.к. первое поле hidden При попытке ввести что-то во второе поле выдает undefined. Наверное, все это можно решить как-то проще, но что-то сейчас ничего не выходит. Да и в любом случае хотелось бы разобраться в ошибке. Заранее спасибо! |
Какой функциональный подход… Программируете на каком-либо из функциональных языков?
1. Вы ничего не возвращаете из функции при рекурсивном вызове asks. 2. Откройте для себя удивительный мир императивных ЯП, в которых имеется конструкция for. |
B@rmaley.e><e, точно же!..
Нет, наверное, это переизбыток теории сказался :) С for'a все и начиналось, но что-то не заладилось. Пожалуй, вернусь-таки к нему, спасибо. |
Часовой пояс GMT +3, время: 15:01. |