[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Содержимое <label> внутри <input>
l@pteff
Здравствуйте, есть форма авторизации, поле для ввода пароля нужно оформить след.образом: внутри input'а при загрузке страницы находится поясняющая надпись "пароль", когда <input> в фокусе надпись исчезает (например, как это сделано в форме авторизации на Яндексе). Делаю так: на input накладываю label с текстом «пароль». <label> связан с <input> через атрибут «for», который соотвествует идентификатору <input>, у которого для событий «onfocus» назначен обработчик события, изменяющий положение <label> (скрывающий его).


<input style="z-index:1" name="password_auth" type="password" onFocus="$(this).next('label').hide()"><label for="password_auth" style="position:relative; top:-20px; color: green; z-index:2; line-height:12px; font-size: 9px">пароль</label>

Но здесь есть два неприятных момента:
1. Если попытаться мышью сделать <input> активным и щелчок попадёт в надпись, то поле не активируется и надпись не исчезает
2. <label> немного сдвигает вниз то что находится под ним, соответственно при введении <input> в фокус, когда <label> исчезает, контент под ним резко "подпрыгивает", что тоже не хорошо.

Подскажите пожалуйста, как можно дополнить код?




Спустя 13 часов, 9 минут, 19 секунд (20.03.2011 - 10:20) l@pteff написал(а):
...

Спустя 2 дня, 6 часов, 10 минут, 45 секунд (22.03.2011 - 16:31) трамонтана написал(а):
я вот думаю что его нужно не дополнить, а изменить.
зачем так всё усложнять ...label привязаный к input находящийся внутри этого input ....
почему нельзя сделать проще - span внутри этого input и обрабатывай этот span как хочешь ..может быть тогда и проблем никаких не будет?

или задача стоить именно label ? )

Спустя 5 дней, 21 час, 46 минут, 8 секунд (28.03.2011 - 13:17) l@pteff написал(а):
разницы нет. делаю через span:

<input style="z-index:1" name="password_auth" type="password" onFocus="$(this).next('span').hide()"><span style="z-index:2; position:relative; top:-20px; color: green; line-height:12px; font-size: 9px">пароль</span>

две названные проблемы остаются.

делал по способу Яндекса (через label), т.к. там код написан с учётом ie, что очень важно

Спустя 17 минут, 3 секунды (28.03.2011 - 13:34) l@pteff написал(а):
Цитата
span внутри этого input

не очень понятно как это правильно прописать. менял местами z-индексы, чтоб инпут был сверху спана с надписью но проблема1 не решилась

Спустя 38 секунд (28.03.2011 - 13:35) l@pteff написал(а):
blink.gif

Спустя 2 минуты, 10 секунд (28.03.2011 - 13:37) трамонтана написал(а):
вообще я на самом деле фигню какую то посоветовал..

ты вообще что то не понятное творишь...


помоему это делается так:

<label for="password_auth"><input name="password_auth" type="password" value="введите пароль" /></label>
- пишишь функцию в скрипте, которая делает обрабатывает св-во фокус, а именно очищает значение value, как фокус снимается то если в value ничего не записали снова ставиться присваивается value значение "введите пароль"



Спустя 24 минуты, 53 секунды (28.03.2011 - 14:02) l@pteff написал(а):
Цитата
<input name="password_auth" type="password" value="введите пароль" /></label>


суть в следующем: при загрузке страницы в input написано "пароль", если я изначально оставлю type="password", то вместо слова "пароль" пользователь увидит звездочки, поэтому ставлю type="text". Как только input в фокусе, type меняю на password.

<label for="password_auth"><input name="password_auth" type="text" value="введите пароль" onFocus="this.type='password'" /></label>   


Во всех браузерах это работает, но IE не разрешает изменять type элемента, и вводимые символы не становятся звёздочками, поэтому приходится мудрить изначально ставя инпуту type="password" и запихивая в него или label с надписью, или span

Спустя 2 часа, 2 минуты, 13 секунд (28.03.2011 - 16:04) SerginhoLD написал(а):
html5:

<input type="password" placeholder="введите пароль">

Спустя 7 минут, 49 секунд (28.03.2011 - 16:12) l@pteff написал(а):
SerginhoLD, действительно работает безотказно и кроссбраузерно. Выручил, спасибо огромное

Спустя 1 минута, 59 секунд (28.03.2011 - 16:14) SerginhoLD написал(а):
"безотказно", слово то какое biggrin.gif

Спустя 5 минут, 7 секунд (28.03.2011 - 16:19) l@pteff написал(а):
biggrin.gif мне оно тоже нравится

Спустя 2 часа, 59 минут, 13 секунд (28.03.2011 - 19:18) трамонтана написал(а):
html5 и "кроссбраузерно" не совместимые понятия ph34r.gif

чош делать...

Спустя 1 день, 14 часов, 22 минуты, 9 секунд (30.03.2011 - 09:41) SerginhoLD написал(а):
Цитата (трамонтана @ 28.03.2011 - 16:18)
html5 и "кроссбраузерно" не совместимые понятия ph34r.gif

чош делать...

IE нужно просто игнорировать и забить на него. Хотя IE 9.0 прям молодец
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.