Я создаю очень простую проверку формы, которая проверяет только обязательные поля. Это эксперимент, я знаю, что есть много плагинов для проверки форм.
То, что я делаю, вызывает функцию, передавая ей идентификатор формы и объект javascript в этом формате
{
control_id1 : {required : 'message to display if control is empty'},
control_id2 : {required : 'message to display if control is empty'},
...
}
Функция выполняет цикл по объекту js, используя for (var k in obj) {...} и проверяет, имеет ли элемент управления с данным идентификатором пустое значение, если он добавляет тег span к элементу управления непосредственный родитель с данным сообщением.
Он также связывает событие «размытия» с этим элементом управления, так что после потери фокуса проверка может быть применена к элементу управления еще раз.
Вы можете увидеть это в действии здесь: http://jsfiddle.net/yvjZF/
Как вы можете видеть, сообщения отображаются нормально, когда вы нажимаете кнопку. но если управление теряет фокус, оно отображает неверное сообщение.
Я не могу найти причину этого, возможно, у меня есть недоразумение в модели событий. Любая помощь по этому вопросу будет высоко ценится.
Спасибо
Anjan