HTML5 / jQuery - скрыть содержимое в старых браузерах?

0

Мой вопрос на самом деле противоположный, но вы получаете идею.

У меня есть форма с заполнителями и надписями над полями ввода. Это выглядит глупо, но поскольку старые браузеры не поддерживают HTML5, где добавлен атрибут "placeholder", метки нужны.

Я думал, что если будет способ проверить, поддерживает ли браузер HTML5? Если это так, скройте ярлыки. Если это не так, спрячьте заполнители (ну вам это не нужно, потому что браузер все равно не обнаружит заполнители).

<div class="6u">
Email
<input type="email" class="text" name="email" placeholder="Email" />
</div>

Я думаю, это возможно с помощью jQuery, но я действительно новичок в этом. Возможно ли это?

  • 0
    stackoverflow.com/questions/15020826/...
  • 0
    Вы можете использовать Modernizr, чтобы определить, поддерживает ли браузер HTML5, и, соответственно, использовать jquery для скрытия / отображения меток.

4 ответа

2

Вы можете попробовать обнаружение функции

<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'
    }
})();

Демо: скрипка

  • 0
    +1 Тот же ответ, что и мой, но с кодом
0

вы можете проверить, поддерживает ли браузер для любых функций HTML5, таких как холст или локальное хранилище, следующим образом: - обратитесь к http://diveintohtml5.info/detect.html

function supports_local_storage() {
  try {
    return 'localStorage' in window && window['localStorage'] !== null;
  } catch(e){
    return false;
  }
}
0

Я бы сделал проверку значения, описанную здесь diveintohtml5. И затем, если браузер поддерживает HTML5, добавьте класс в тег body, чтобы скрыть все метки. Пусть браузер выполнит работу, а не ваш JavaScript.

0

если вы хотите добавить атрибут id в текст ввода

<div class="6u">
Email
<input id="email" type="email" class="text" name="email" placeholder="Email" />
</div>

и используйте функцию removeAttr()

$("#email").removeAttr("placeholder");

Ещё вопросы

Сообщество Overcoder
Наверх
Меню