Comments 49
Могу быть немного не в теме, но вроде бы вот это elv1s.habrahabr.ru/blog/74363/ (там про атрибут placeholder) как раз пересекается с функционалом, представленном в данном топике.
0
сорри, не туда отправил :). предназначалось для этого топика — habrahabr.ru/blogs/jquery/74313/
0
Хммм… Действительно неплохо. Я не верстальщик и с html5 знаком только по «слухам», поэтому и городил свой велосипед. И всё же даже на первый взгляд у этого способа на данный момент есть недостатки(в том случае, если браузер не поддерживает html5):
— Подсказки в полях password будут точками
— Если отключен js, то пользователь ничего не увидит.
Так что мой велосипед в данный момент ещё имеет право на жизнь =)
— Подсказки в полях password будут точками
— Если отключен js, то пользователь ничего не увидит.
Так что мой велосипед в данный момент ещё имеет право на жизнь =)
+5
А еще может выясниться что если доктайп будет на странице прописан не HTML5, еще и код будет не валиден за счет использования «недопустимого» атрибута, а в вашем примере скорее всего будет гуд.
-3
Да, с паролем есть проблема. nv.github.com/placeholder.js/tests/password.html
0
Как это сказывается на запоминалке паролей?
+1
Можно не применять placeholder к полю для ввода пароля
0
И логина…
Можно конечно, но я спрашивал не это. Я так понимаю, ответ на мой вопрос — «плохо сказывается»
Можно конечно, но я спрашивал не это. Я так понимаю, ответ на мой вопрос — «плохо сказывается»
0
в примере на w3c как раз placeholder к полю пароля не применятеся
dev.w3.org/html5/spec/Overview.html#the-placeholder-attribute
Password: [input type=«password» name=«password»]
получается что к полю ввода пароля применять placeholder нельзя?
dev.w3.org/html5/spec/Overview.html#the-placeholder-attribute
Password: [input type=«password» name=«password»]
получается что к полю ввода пароля применять placeholder нельзя?
0
То что хоть какойто браузер реализовал этот аттрибут это действительно классно, но с позиции кроссбраузерности наверно все таки прийдеться юзать велосипед :-(, пока остальные браузеры не подтянуться
-1
Хм попробывал под opera этот аттрибут действительно не работает
0
вы удивлены? :)
0
Нет, в топике ж написано что только WebKIT.
Просто полезны аттрибут и на недогруженых страницах часто вижу баги с этой фичек, поэтому хотелось убедиться самому что его еще нету в Opera, для себя как для кодера.
FF проверять не стал, потому что с ним и так без меня на хабре разберуться, думаю уже было бы уже куча постов а в FF он уже работает. :-))
Просто полезны аттрибут и на недогруженых страницах часто вижу баги с этой фичек, поэтому хотелось убедиться самому что его еще нету в Opera, для себя как для кодера.
FF проверять не стал, потому что с ним и так без меня на хабре разберуться, думаю уже было бы уже куча постов а в FF он уже работает. :-))
0
UFO just landed and posted this here
Вот только зачем… Многие люди не понимают, нахрена в текстовом поле что-то написано.
0
UFO just landed and posted this here
На строчке «if (input.placeholder)return false;» эксплорер тоже выходит из функции.
+1
Главная проблема этого решения, и ему подобных (заменяющих свойство value) состоит в том, что при отправке формы, если ничего не вводить, отправятся значения подсказок.
Ну и конкретно у этого скрипта есть еще недостаток в затирании style.color.
Уйти от этого можно 2 путями:
1. Ставить подсказку на background (но тогда понадобится много изображений).
2. Накладывать поверх инпута абсолютно спозиционированный элемент с подсказкой.
Ну и конкретно у этого скрипта есть еще недостаток в затирании style.color.
Уйти от этого можно 2 путями:
1. Ставить подсказку на background (но тогда понадобится много изображений).
2. Накладывать поверх инпута абсолютно спозиционированный элемент с подсказкой.
+1
А чем плохо подкладывать элемент с текстом под прозрачный input?
Потому что я сильно сомневаюсь, что ваш второй вариант корректно обработает вставку текста без предварительного клика (кстати, этим же плохи скрипты, заменяющие value, они добавляют вставляемый текст к подсказке).
Потому что я сильно сомневаюсь, что ваш второй вариант корректно обработает вставку текста без предварительного клика (кстати, этим же плохи скрипты, заменяющие value, они добавляют вставляемый текст к подсказке).
0
input.form.addEventListener('submit', function(){ if (input.value == input.placeholder) input.value = ''; }, true)
+1
Затирание style.color исправлено: nv.github.com/placeholder.js/tests/color.html
0
Единственная проблема, что в вашем варианте нельзя ввести тот же текст, что и placeholder, т.е. inbox@disney.com ввести будет нераельно :) а в HTML 5 можно. Хотя, скорее всего, это не критично
+1
Учитывая, что на практике placeholder (и аналоги) чаще всего используется для подсказок внутри форм, это не представляет никакой проблемы. Ну разве что кто-нибудь будет долбить сервер, доказывая, что его е-мейл на самом деле «Введите свой e-mail», а зовут его «Введите ваше имя» :)
0
Предлагаю ввести флаг пустого поля, который ставить на blur'е и проверять при focus'е. Тогда всё будет работать хорошо.
0
мой давний подход к снаряду с использованием prototype.js, доработанный для placeholder:
Object.extend(Form.Element.Methods, { /** * Set devault value for text input, it will disappear on focusing input * @param element target input * @param value given default value */ setDefaultValue: function(element, value) { element = $(element); value = value || element.readAttribute('placeholder'); if (!value) return; var setDefault = function() { if (element.value.empty()) { element.value = value; } } function empty(){ if (element.value == value) { element.value = ''; } } setDefault(); element.observe('blur', setDefault); element.observe('focus', empty); element.form && $(element.form).observe('submit', empty); return element; } );
+1
дык а нельзя добавить сверху
if (typeof(input)=='string') {
input = document.getElementById(input);
}
?
Проще же
if (typeof(input)=='string') {
input = document.getElementById(input);
}
?
Проще же
0
ilyaplot.ru/posts/zastavlyaem-rabotat-placeholder-v-ie/
Нашел метод без лишнего js. Если в браузере нет поддержки placeholder, то работает js в input.
Нашел метод без лишнего js. Если в браузере нет поддержки placeholder, то работает js в input.
0
Sign up to leave a comment.
placeholder.js