2015-01-21 4 views
0

У меня есть ввод электронной почты на форме. Он имеет значение по умолчанию. Когда вы нажмете focus, оно вычеркивает поле, если значение равно значению по умолчанию. Когда вы укажете blur, он устанавливает значение по умолчанию, если поле пустое.Поле электронной почты HTML5, дающее «пустое» предупреждение в последнем FF 35

Проблема заключается в том, что если вы нажмете кнопку «Отправить», когда пустое письмо (или по умолчанию), оно ответит FF пустым предупреждающим сообщением вместо «Пожалуйста, введите адрес электронной почты». Это происходит только в последнем FF 35

enter image description here

Проблема не произойдет, если я удалить либо focus или blur событие. Я не могу использовать place holders или атрибут required или что-то еще подобное, потому что это должно быть совместимо с IE8.

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

HTML

<form action=""> 
<input data-default='Email*' value="Email*" id=email type="email" /> 
    <input type=submit /> 
</form> 

JS

$('#email').focus(function() { 
    if ($(this).val()=="Email*") { 
     $(this).val(""); 
    } 
}); 

$('#email').blur(function() { 
    if ($(this).val()=="") { 
     $(this).val($(this).data('default')); 
    } 
}); 

http://jsfiddle.net/vkbgg8dr/1/

ответ

0

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

Для реализации кросс проверки браузера,

, пожалуйста, посмотрите на

jQuery validation plugin