Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.02.2009, 10:34
Аватар для afandi
Новичок на форуме
Отправить личное сообщение для afandi Посмотреть профиль Найти все сообщения от afandi
 
Регистрация: 08.09.2008
Сообщений: 4

ключи в ассоциативной переменной
Преамбула
===
Ну не умею я описывать задачки в программировании, однако все равно надеюсь, что кто-нибудь поймет и поможет.
===
Амбула
===
На сайте куча форм в которых пользователь вводит данные, правильность ввода которых проверяю яваскриптом. Чтобы как то упорядочить этот процесс в html перед формой добавляю такой код
<script>
var checker = {};
checker.name = false;
checker.email = false;
checker.passcode = false;
checker.msg = false;
</script>

Саму библиотеку функций по проверке вынес в отдельный файлик validate.js
Вот примерная функция
function check(input, checker) {
    var iName = input.name;
    if (iName == 'name') {
        if (input.value) {
            var errorDiv = document.getElementById('errorName');
            var okDiv = document.getElementById('okName');
            if (validName(input.value)) {
                checker.name = true;
                input.className = 'frame wide good'
                if (errorDiv) {
                    errorDiv.style.display = 'none';
                }
                if (okDiv) {
                    okDiv.style.display = 'block';
                }
            } else {
                checker.name = false;
                input.className = 'frame wide bad'
                if (errorDiv) {
                     errorDiv.style.display = 'block';
                }
            }
        } else {
           var okDiv = document.getElementById('okName');
           var errorDiv = document.getElementById('errorName');
           if (okDiv) {
               okDiv.style.display = 'none';
           }
           if (errorDiv) {
               errorDiv.style.display = 'none';
           }
           checker.name = false;
           input.className = 'frame wide';
        }
    }
    isAllRight(checker);
}

соответсвенно эта функция вешается на input в обработчик onkeyup
По замыслу последная функция (isAllRight) должна проветить все ли ключи в переменной checker имеют значение true и если да произвести какие-то действия. Например активировать кнопку submit

Вопрос.
Как пройтись по всем ключам, если я не знаю изначально какие ключи есть в переменной checker. Потому что такой механизм используется на разных формах с разным набором проверяемых инпутов.

Надеюсь не утомил и все понятно описал. Думаю что вы мне поможите
Ответить с цитированием
  #2 (permalink)  
Старый 05.02.2009, 10:39
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

var hash = {a: 1, b: 2, c: 3};
for (var i in hash) 
  alert(i + ': ' + hash[i]);
Ответить с цитированием
  #3 (permalink)  
Старый 05.02.2009, 15:33
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Kolyaj,
На всякий случай можно так:
var hash = {a: 1, b: 2, c: 3};
for (var i in hash)
   if (hash.hasOwnProperty(i))
      alert(i + ': ' + hash[i]);


А то поставит в прототип какая-нибудь библиотека свой метод, и будет лишняя итерация.
Ответить с цитированием
  #4 (permalink)  
Старый 05.02.2009, 15:53
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от Андрей Параничев
и будет лишняя итерация
Итерация-то по-любому будет лишняя Проверка лишь ее отсеет.
__________________
Тонкости ECMAScript
Ответить с цитированием
  #5 (permalink)  
Старый 05.02.2009, 15:58
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Dmitry A. Soshnikov,
Ну будет обработана лишняя итерация, так наверно правильней.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 15:37
Добавление значения переменной в textarea IamSmorodin Общие вопросы Javascript 13 09.04.2009 10:59
Проверка типа переменной SunYang Общие вопросы Javascript 4 13.02.2009 20:15
Объясните пожалуйста значение символов после переменной Анатолий Общие вопросы Javascript 1 09.01.2009 03:50
Переменная от переменной или как к имени переменной конкатенировать значение другой Aderba jQuery 5 12.11.2008 15:25