ключи в ассоциативной переменной
Преамбула
=== Ну не умею я описывать задачки в программировании, однако все равно надеюсь, что кто-нибудь поймет и поможет. === Амбула === На сайте куча форм в которых пользователь вводит данные, правильность ввода которых проверяю яваскриптом. Чтобы как то упорядочить этот процесс в 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, время: 07:57. |