Nano Hash - криптовалюты, майнинг, программирование

Google html5 shiv не отображает заполнители?

У меня есть форма, в которой клиент хочет, чтобы метки находились внутри поля ввода, и я решил использовать заполнитель HTML 5 и html5shiv от Google вместо старого javascript. Однако мои заполнители, похоже, не работают должным образом в IE, для чего я использовал заточку. Вот код:

Тип документа:

<!DOCTYPE html>

Шив:

<!--[if IE]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js" type="text/javascript"></script>
<![endif]-->

Форма:

<form method="post" enctype="multipart/form-data" name="contactForm" id="contactForm">

    <input type="text" name="name" id="name" placeholder="Your Full Name..." />
    <input type="text" name="telephone" id="telephone" placeholder="Your Telephone Number..." />
    <input type="email" name="email" id="email" placeholder="Your Email Address..." />
    <textarea name="enquiry" id="enquiry" placeholder="Your Enquiry or Comments..."></textarea>
    <p class="midpadLeft green_Button_margin_2"><span class="green_Button_2"><a href="javascript: document.contactForm.submit();" target="_self" class="green_Button_2">Submit Enquiry <img src="images/mid-envelope.png" alt="Submit"/></a></span></p>

</form>

Любые идеи относительно того, почему это не работает?

Редакция:

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

Скрипт в том числе (содержимое этого скрипта было скопировано непосредственно из здесь ):

<script type="text/javascript" src="scripts/placeholders.js" charset="utf-8"></script>

Слушатель событий готовности DOM:

<body onload="Placeholders.init(true);">

  • Похоже, что в коде нет ссылки на атрибуты-заполнители в коде. Действительно ли html5shiv должен их маскировать? 14.02.2012
  • Насколько мне известно, html5shiv ничего не делает для атрибута placeholder. Однако доступны различные прокладки (в основном jQuery)... см. Modernizr для списка или моя попытка (для которой не требуется jQuery) 14.02.2012
  • @JamesAllardice Я пробовал ваш код, но он не работает. См. редакцию 14.02.2012
  • @PhilFaceplantYoung - Видите, какая версия? 14.02.2012
  • Тот, который я только что добавил, извините, я должен был сделать это в обратном порядке 14.02.2012
  • @PhilFaceplantYoung - Да, так было бы лучше :) Проверьте консоль, вы видите ошибки? Или заполнители просто не появляются вообще? 14.02.2012
  • Я не вижу никаких ошибок, они просто не появляются 14.02.2012
  • @JamesAllardice Теперь это исправлено, похоже, я пропустил точку с запятой при копировании 14.02.2012
  • @PhilFaceplantYoung - Рад, что у вас все получилось :) 14.02.2012
  • @JamesAllardice Это очень хороший сценарий, спасибо :) 14.02.2012

Ответы:


1

HTML5 Shiv просто позволяет стилизовать ранее неизвестные элементы в IE. Самая последняя версия делает несколько дополнительных вещей, таких как исправление document.createElement, но кроме этого она ничего не заполняет.

Если вы хотите эмулировать placeholder, используйте полифилл-заполнитель. Я написал один в формате плагина jQuery, если вам интересно: http://mths.be/placeholder

Используйте его следующим образом:

$('input, textarea').placeholder();

Вот демонстрация: http://mathiasbynens.be/demo/placeholder.

Кстати, вы должны использовать <label> вместо @placeholder, если текст «Ваше полное имя» и т. д.

14.02.2012
  • У меня возникла проблема с использованием asp: TextBox с этим скриптом. Элемент управления имеет связанный с ним элемент управления asp RequiredValidator, который не может перехватить значение, что приводит к обратной публикации. Удаление плагина-заполнителя исправляет это. Любое решение? 17.01.2014

  • 2

    Ознакомьтесь также с NuGet-пакетом Тодда Нортропа jquery.watermark.

    //polyfill placeholder in older browsers
    var inputs = $('input, textarea');
    
    $.each(inputs, function (i, itm) {
        var input = $(itm);
        input.watermark(input.attr('placeholder'));
    });
    

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

    18.02.2014
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

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

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..