2015-02-05 2 views

ответ

0

Опера Мини supportsonfocus и onblur Событие. Таким образом, вы можете добавить обработчик, чтобы скрыть местозаполнитель на событии focus и показать на мероприятии blur (простой случай).

Мои тесты для iOS Opera Mini и Android Opera Mini (последние версии) показывают, что заполнитель заполнителя отлично работает, только если вы нажмете done на клавиатуре устройства, как в this video из документов. Если вы нажмете вне клавиатуры, то текстовый ввод потеряет фокус, но размытие рупора не будет срабатывать. Также нет, что такое поведение истинно, поскольку рендер Opera Mini выполняется не на вашем устройстве. Больше информации here.

My test code, я создаю форму с 2 текстовыми вводами и добавляю к первым обработчикам ввода атрибутам Для второго ввода я добавляю обработчики, используя addEventListener.

HTML:

<form action=""> 
    <input type=text value="Аttributes handler" onfocus="(this.value === 'Аttributes handler') && (this.value = '')" onblur="(this.value === '') && (this.value = 'Аttributes handler')"> 
    <br><br> 
    <input type=text value="" data-placeholder="Listener handler"> 
    </form> 

Javascript:

document.addEventListener('DOMContentLoaded', function() { 
    var listenerInputNode = document.querySelector('input:last-child'), 
     placeholderText = listenerInputNode.getAttribute('data-placeholder'); 

    (listenerInputNode.value === '') && (listenerInputNode.value = placeholderText); 

    listenerInputNode.addEventListener('focus', function() { 
    (this.value === placeholderText) && (this.value = ''); 
    }, false); 
    listenerInputNode.addEventListener('blur', function() { 
    (this.value === '') && (this.value = placeholderText); 
    }, false); 

}); 

Так что я думаю, что это действительно работает polyfill для заполнителя в Opera Mini, но focus/blur событие действительно не срабатывает, как вы ожидаете ,

+0

Не уверен, что я хорошо себя объяснил. Текст-заполнитель не отображается, когда страница загружается так же, как в других браузерах с поддержкой HTML5-заполнителя или с резервным копированием JS. Поэтому для поля ввода я не использую метку, я только полагаюсь на текст заполнителя, чтобы сообщить пользователю, что вводить. –

0

Удалось обойти это, используя некоторые нюансы UA, чтобы обнаружить Opera Mini и скрыть/показать метки с помощью оператора if. Может опубликовать код, если кто-либо найдет его полезным.

Смежные вопросы