Класс не удаляется при клике

0
$(document).ready(function (){

            var postcode = $('#postcode-form').val();

            function errors(){
                if(postcode == ""){
                    $('#postcode-form').addClass("form-error");
                }else{
                    $('#postcode-form').removeClass("form-error");
                }
            }

            $('#submit-form').click(errors);
        });

Класс добавляет, когда форма пуста, но не удаляется при вводе данных в форму. Я не понимаю, почему?

Теги:

2 ответа

2
Лучший ответ

Переместите блок кода почтового индекса в пределах вашей функции. В противном случае он получает значение только один раз, когда страница загружается. Поместив его в функцию, он будет проверять значение на каждом клике.

function errors() {
    var postcode = $('#postcode-form').val();
    if (postcode == "") {
        $('#postcode-form').addClass("form-error");
    } else {
        $('#postcode-form').removeClass("form-error");
    }
}
0

Итак, теперь вы знаете, почему он не работает. Я бы воспользовался этой ошибкой, и рефакторинг для кэширования селектора!

$(document).ready(function (){

        var $postcode = $('#postcode-form');

        function errors(){
            if($postcode.val() == ""){
                $postcode.addClass("form-error");
            }else{
                $postcode.removeClass("form-error");
            }
        }

        $('#submit-form').click(errors);
    });

Ещё вопросы

Сообщество Overcoder
Наверх
Меню