jQuery - результат проверки отличается от демонстрации JS Fiddle

0

У меня очень странная проблема, когда код моих рабочих файлов не работает, когда один и тот же код на моем JS Fiddle работает нормально.

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

Я прошел через несколько раз, убедившись, что я нахожусь в одной и той же среде кода, но все одинаково. Я не знаю, где взять это отсюда.

(function($){
    $('#signIn_1').click(function () {  

        var username = $('#username_1').val();
        var password = $('#password_1').val();

        if ( username === '' || password === '' ) {
            $('.fa-user').removeClass('success').addClass('fail');  
        } else {
            $('.fa-user').removeClass('fail').addClass('success');      
        }

    });
})(jQuery);

Является ли выражение if if нарушением каких-либо правил, которые могут привести к несогласованности?

JS Fiddle

  • 0
    Вы хотели бы обрезать имя пользователя и пароль, прежде чем проверять равенство в «если»
  • 0
    Благодарю. У меня изначально была trim и здесь тестировали без нее. Оба не сработали для меня.
Теги:

2 ответа

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

Проблема в том, что ваш элемент <form> отправляет, тем самым перезагружая страницу. Я рекомендую изменить событие submit формы, а не указывать кнопку события click, поскольку формы обычно, но не обязательно запускаются нажатием кнопки. Кроме того, return false не является хорошим способом отключения поведения.

Пример:

(function($){
    $('#form_1').submit(function (event) {
        var username = $('#username_1').val();
        var password = $('#password_1').val();
        if ( username === '' || password === '' ) {
            event.preventDefault();
            $('.fa-user').removeClass('success').addClass('fail');
        }
        else {
            $('.fa-user').removeClass('fail').addClass('success');      
        }
    });
})(jQuery);

Здесь скрипка: http://jsfiddle.net/RyanJW/VqwNw/1/

1

Проверь это
использовать return false чтобы остановить выполнение

(function($){
    $('#signIn_1').click(function () {  

        var username = $('#username_1').val();
        var password = $('#password_1').val();

        if ( $.trim(username) === '' || $.trim(password) === '' ) {
            $('.fa-user').removeClass('success').addClass('fail');  
            return false;
        } else {
            $('.fa-user').removeClass('fail').addClass('success');      
        }

    });
})(jQuery);

скрипка

Ещё вопросы

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