Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Текст в input пропадающий при получении фокуса (https://javascript.ru/forum/misc/33805-tekst-v-input-propadayushhijj-pri-poluchenii-fokusa.html)

TheSameSon 09.12.2012 00:43

Текст в input пропадающий при получении фокуса
 
Есть текстовое поле
<input onblur="if(this.value=='') this.value='Ваше имя'" onclick="if(this.value='Ваше имя') this.value=''" type="text" id="wsf_name" name="wsf_name" value="Ваше имя" />

Хотелось бы, чтобы когда пользователь введет какое-то значение, потом уберет указатель с элемента и снова поместит его туда (чтобы что-то дописать) оно не сбрасывалось на ''.
Сейчас это происходит, т.к. value все равно остается "Ваше имя" даже если в поле введено другое значение. Предполагаю, что нужно что-то типа
onchange="this.value='вот тут нужно получить то, что вводит пользователь'"
. Пытался, не получилось.

pikko 09.12.2012 01:00

onclick="if(this.value == 'Ваше имя') this.value=''"

TheSameSon 09.12.2012 01:18

pikko,
Это есть уже. Проблема в том, что если юзер напишет там 'Вася', уберет указатель, вернет его снова, то 'Вася' исчезнет, т.к. в коде value='Ваше имя'. Ну если исчезнувший Вася еще не критично, то дальше в форме есть аналогичный textarea, в который вводится текст комментария, и если будет пропадать стена текста, написанная пользователем, то это уже не хорошо.

Hoshinokoe 09.12.2012 02:48

TheSameSon,

Тебе указали на ошибку: вместо операции сравнения (==) у тебя стоит операция присваивания (=). Поэтому по клику текст всегда меняется на "Ваше имя".

onclick="if(this.value='Ваше имя') this.value=''"

И вместо события onclick в данном случае нужно использовать onfocus.

<input onblur="if(this.value=='') this.value='Ваше имя'" onfocus="if(this.value=='Ваше имя') this.value=''" type="text" id="wsf_name" name="wsf_name" value="Ваше имя" />

TheSameSon 09.12.2012 03:33

Hoshinokoe,
И правда, не обратил внимания. Спасибо!
pikko,
Спасибо!


Часовой пояс GMT +3, время: 01:29.