Мой вопрос на самом деле противоположный, но вы получаете идею.
У меня есть форма с заполнителями и надписями над полями ввода. Это выглядит глупо, но поскольку старые браузеры не поддерживают HTML5, где добавлен атрибут "placeholder", метки нужны.
Я думал, что если будет способ проверить, поддерживает ли браузер HTML5? Если это так, скройте ярлыки. Если это не так, спрячьте заполнители (ну вам это не нужно, потому что браузер все равно не обнаружит заполнители).
<div class="6u">
Email
<input type="email" class="text" name="email" placeholder="Email" />
</div>
Я думаю, это возможно с помощью jQuery, но я действительно новичок в этом. Возможно ли это?
Вы можете попробовать обнаружение функции
<div class="6u">
<label>Email</label>
<input type="email" class="text" name="email" placeholder="Email" />
</div>
тогда
.placeholder label{
display: none;
}
а также
(function () {
if ('placeholder' in document.createElement('input')) {
var html = document.getElementsByTagName("html")[0];
html.className = (html.className || '') + ' placeholder'
}
})();
Демо: скрипка
вы можете проверить, поддерживает ли браузер для любых функций HTML5, таких как холст или локальное хранилище, следующим образом: - обратитесь к http://diveintohtml5.info/detect.html
function supports_local_storage() {
try {
return 'localStorage' in window && window['localStorage'] !== null;
} catch(e){
return false;
}
}
Я бы сделал проверку значения, описанную здесь diveintohtml5. И затем, если браузер поддерживает HTML5, добавьте класс в тег body, чтобы скрыть все метки. Пусть браузер выполнит работу, а не ваш JavaScript.
если вы хотите добавить атрибут id в текст ввода
<div class="6u">
Email
<input id="email" type="email" class="text" name="email" placeholder="Email" />
</div>
и используйте функцию removeAttr()
$("#email").removeAttr("placeholder");