Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.07.2012, 12:50
Аспирант
Отправить личное сообщение для Caminante Посмотреть профиль Найти все сообщения от Caminante
 
Регистрация: 23.03.2012
Сообщений: 40

Проблема с замыканиями
Добрый день!

Прошу помочь разобраться, что не так в моем коде.
Есть форма с 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.

Наверное, все это можно решить как-то проще, но что-то сейчас ничего не выходит. Да и в любом случае хотелось бы разобраться в ошибке.

Заранее спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 11.07.2012, 13:23
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Какой функциональный подход… Программируете на каком-либо из функциональных языков?
1. Вы ничего не возвращаете из функции при рекурсивном вызове asks.
2. Откройте для себя удивительный мир императивных ЯП, в которых имеется конструкция for.
Ответить с цитированием
  #3 (permalink)  
Старый 11.07.2012, 13:31
Аспирант
Отправить личное сообщение для Caminante Посмотреть профиль Найти все сообщения от Caminante
 
Регистрация: 23.03.2012
Сообщений: 40

B@rmaley.e><e, точно же!..
Нет, наверное, это переизбыток теории сказался

С for'a все и начиналось, но что-то не заладилось. Пожалуй, вернусь-таки к нему, спасибо.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с обработкой ескольких .hover() anocean jQuery 3 15.06.2012 22:43
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема с дизайном после отправки xmlhttprequest, Проблема с дизайном после отправки cyberx AJAX и COMET 3 01.05.2010 17:07
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47