У меня очень странная проблема, когда код моих рабочих файлов не работает, когда один и тот же код на моем 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 нарушением каких-либо правил, которые могут привести к несогласованности?
Проблема в том, что ваш элемент <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/
Проверь это
использовать 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);
trim
и здесь тестировали без нее. Оба не сработали для меня.