2016-06-16 5 views
0

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

$('#id_email.form-control').keyup(function(){ 
$('span.error-keyup-email').remove(); 
var inputVal = $(this).val(); 
var emailReg = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 
if(!emailReg.test(inputVal)){ 
    $(this).after('<span style="color:red;" class="error error-keyup-email">Invalid Email Format.</span>'); 
} 
}); 

Код работает очень хорошо. Это именно то, чего я хотел.

Проблема: Когда я выбираю электронное письмо, которое я уже сохранил в браузере (обычно он сохраняет электронную почту или псевдо для пользователя). Когда я не нахожу свой адрес электронной почты, и вместо этого я выбираю свой адрес электронной почты, сообщение все равно остается под входом, даже если это правильный формат электронной почты.

У вас есть идея?

Я могу дать вам более подробную информацию, если вы хотите, и спасибо за то, что нашли время на моей проблеме :)

имеет хороший день :)

+3

Попробуйте использовать 'input' событие – Rayon

ответ

1

Попробуйте это:

$('#id_email.form-control').on('input', function(){ 
$('span.error-keyup-email').remove(); 
var inputVal = $(this).val(); 
var emailReg = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 
if(!emailReg.test(inputVal)){ 
    $(this).after('<span style="color:red;" class="error error-keyup-email">Invalid Email Format.</span>'); 
} 
}); 

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

0

// удалить интервал ошибки в еще

$('#id_email.form-control').keyup(function(){ 
    $('span.error-keyup-email').remove(); 
    var inputVal = $(this).val(); 
    var emailReg = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 
    if(!emailReg.test(inputVal)){ 
     $(this).after('<span style="color:red;" class="error error-keyup-email">Invalid Email Format.</span>'); 
    } 
    else{ 
     $('span.error-keyup-email').remove(); 
    } 
    }); 
0

использование событие изменения входного сигнала, которое называется автомобиль, когда фокус теряется

$('#id_email.form-control').change(function(){ 

}); 
1

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

Возможное решение могло бы быть, чтобы пройти все поля ввода OnLoad и проверить, если они заполнены

 Смежные вопросы

  • Нет связанных вопросов^_^