2012-03-27 6 views
0

Вот мой код для текстовой области.Предотвращение очистки текстового поля при вводе нового текста в

<textarea style="width: 95%;" rows="6" name="feedback[<?=$r_uid;?>]" disabled="disabled" onclick="this.value='';" onblur="this.value=!this.value?'No feedback provided':this.value;" maxlength="800"></textarea> 

Когда пользователь нажимает на него, он очищается. И если они оставят его пустым, появится текст «Без обратной связи». Однако, если они печатают что-то еще и выходят за пределы поля, текстовая область сохраняет его.

Проблема, однако, заключается в том, что они щелкнули внутри коробки. Новый текст, набранный, очищается. Есть ли способ предотвратить его очистку при вводе нового текста?

Спасибо!

ответ

2

Добавьте это к вашему событию OnClick:

if (this.value == 'No feedback provided') this.value = ''; 

... Обратите внимание, что вы только против click! какой примерно клавиатура навигация? использовать onfocus вместо onclick:

<textarea style="width: 95%;" rows="6" name="feedback[<?=$r_uid;?>]" disabled="disabled" 
onfocus="if (this.value == 'No feedback provided') this.value = '';" onblur="this.value=!this.value?'No feedback provided':this.value;" maxlength="800"></textarea> 

Обратите внимание, что встроенные сценарии являются устаревшими и трудно читать и поддерживать.

+1

Спасибо! Именно то, что мне нужно. +1 для встроенных скриптов. Я все еще пытаюсь изучить веревки. Опять же, спасибо. –

0

Эта часть вашего кода очищает ее. Удалите это;)

onclick="this.value='';" 

В принципе, при щелчке по элементу значение элемента clicked = ''. Так пусто.

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