Я позаимствовал ответ из вышеприведенного и сделал так, чтобы он был обратно совместим со старыми современными браузерами, а также с IE -
. С помощью приведенного ниже кода убедитесь, что у вас есть и «значение», и «атрибут placeholder 'для полей ввода.В моем конкретном случае мне нужно было поддерживать варианты IE.
Объяснение - Если браузер поддерживает заполнитель, введенное значение удаляется.Если нет, старые браузеры будут игнорировать атрибуты заполнителя, а нижеприведенный js имитирует поведение заполнителя по умолчанию.Этот сценарий также будет игнорировать любые токены авторизации для CSRF (в моих формах получалось сообщение об ошибке, когда значения токенов аутентификации очищались, вызывая предупреждение CSRF в моих приложениях Rails).назначить класс каждому входу, который вы специально хотите использовать в этом сценарии, и соответствующим образом обновить выражение true (хотя приведенный ниже метод немного более сухой).
var placeholderSupported = !!( 'placeholder' in document.createElement('input') );
if (placeholderSupported === true){
$('input:not([type="submit"], [name="authenticity_token"])').val('');
} else{
$('input')
.focus(function() {
if (this.value === this.defaultValue) {
this.value = '';
}
})
.blur(function() {
if (this.value === '') {
this.value = this.defaultValue;
}
});
}