ключи в ассоциативной переменной
Преамбула
=== Ну не умею я описывать задачки в программировании, однако все равно надеюсь, что кто-нибудь поймет и поможет. === Амбула === На сайте куча форм в которых пользователь вводит данные, правильность ввода которых проверяю яваскриптом. Чтобы как то упорядочить этот процесс в 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. Потому что такой механизм используется на разных формах с разным набором проверяемых инпутов. Надеюсь не утомил и все понятно описал. Думаю что вы мне поможите |
var hash = {a: 1, b: 2, c: 3}; for (var i in hash) alert(i + ': ' + hash[i]); |
Kolyaj,
На всякий случай можно так: var hash = {a: 1, b: 2, c: 3}; for (var i in hash) if (hash.hasOwnProperty(i)) alert(i + ': ' + hash[i]); А то поставит в прототип какая-нибудь библиотека свой метод, и будет лишняя итерация. |
Цитата:
|
Dmitry A. Soshnikov,
Ну будет обработана лишняя итерация, так наверно правильней. :) |
Часовой пояс GMT +3, время: 06:35. |