Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > Jquery.validation() errorplacement


Автор: CyClon 13.12.2009, 01:17
Ночь. Мозги плавятся.
Использую Jquery и плагин validation для проверки данных в форме.

Ошибки (неправильно введённые данные) я кидаю в div id="error_labe". это я отметил так:
Код

        errorPlacement: function(error) {
            $('#error_label').html(error); },

Т.е. в див вставляется ошибка с помощью html. Но происходит такая ситуация: если пользователь ввёл неправильные данные - ошибка выводится в этот див, но если исправить данные на правильные, то ошибка не уходит. причина понятна: html добавил ошибку, а убирать никто не собирается. но проблему то решить нужно

 Что можно придумать? Заранее благодарен за помощь

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

Автор: WolfAlone 13.12.2009, 02:13
Извините, не совсем понял Вашу проблему! Проблема в том, что Вы не можете заменить содержимое div'a в котором содержится текст ошибки или в том, что не правильно работает функция валидации и при верно введённых данных она не корректно срабатывает?

Автор: CyClon 13.12.2009, 02:26
Необходимо заменять поле на пустое, если ошибок нет

Автор: IDVsbruck 13.12.2009, 14:55
Тебе надо подсказать как проверять на наличие ошибок? Или как сделать див пустым? - непонятен вопрос ...
Если первое, то мало вводных, если второе, то $("#error_label").html(""); спасет "отца русской демократии".

Автор: CyClon 13.12.2009, 15:49
Попытка № 3.

Есть форма. Есть код (выше написан), котоырй выводит ошибки.
Ситуация: человек ввёл данные некорректно. ввёл некорректный email. в диве высветилась ошибка! он исправил мыло на правильное, но ошибка не исчезла, т.е. при onblur ошибка не исчезает! 

Автор: CyClon 13.12.2009, 21:57
Как и на всех остальных форумах: пока дождёшься ответа, легче самому найти решение, что я и сделал =))

По теме:
Нужно просто добавить такую строчку:
Код

        success: function() {
                $('#error_label').html(); }


Автор: IDVsbruck 14.12.2009, 03:39
Твоя "строчка" возвращает содержимое. А для обнуления нужно .html("");

Автор: CyClon 14.12.2009, 19:27
Цитата(IDVsbruck @ 14.12.2009,  04:39)
Твоя "строчка" возвращает содержимое. А для обнуления нужно .html("");

Ну, в коде, естественно, я так и написал. Просто здесь торопился и написал неправильно.

Чтобы не создавать новую тему, спрошу здесь. 
Ситуация: для вывода ошибок в валидаторе я не использую какие-то либо дополнительные контейнеры, т.е. не юзая errorContainer; errorPlacement и т.п. Т.е. мне нравится, как выводятся ошибки справка от input'а. Естественно, я ошибкам задал свой стиль ксс:

Код

.error_label {
    margin-left:20px;
    font-size:16px;
    color:#F00;
    padding:5px;
    position:absolute;
    height:23px;
    width:320px;
    border-color:#F00;
    border:1px solid;
    background-color:#fadadd;
}


Всё хорошо, ошибки высвечиваются справа от инпутов, как я и хотел, в моём стиле. Но иногда переносятся. Вот в каких ситуациях:
1. Пользователь вводит неверные данные. (на скриншоте: блабла). справа ему об этом сообщает слово "ошибка!".
2. Пользователь исправляет на верное значение (на скриншоте: Логин)
3. Пользователь решает снова написать неправильные значения(на скриншоте: блаблабла) и по идее ему должна высветиться ошибка, но уже высвечивается она ниже инпута, а не справа от него.

Как-то в ксс надо что-либо подправить. Что и как? заранее спасибо

з.ы. скриншот нарисован в фотошопе, он не из браузера

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)