2010-05-06 2 views
30

Учитывая <textarea> со значением по умолчанию следующим образом:Как очистить textarea от щелчка?

<textarea>Please describe why</textarea> 

Как вы очистить значение по умолчанию, когда пользователь нажимает, чтобы отредактировать поле?

+4

Это весёлый хороший план! –

+0

Почему я получил минус?! – Karem

+1

Возможно, потому, что вы не включили примерный код и не задали конкретный вопрос (ваш «вопрос» был просто заявлением о вашей цели, следовательно, комментарий Пекки). Я переписал ваш вопрос, включив оба. – Dolph

ответ

36

Ваш JavaScript:

function clearContents(element) { 
    element.value = ''; 
} 

И ваш HTML:

<textarea onfocus="clearContents(this);">Please describe why</textarea> 

Я предполагаю, что вы хотите, чтобы сделать это немного более надежным, чтобы не протереть пользовательский ввод когда фокусируя второй раз. Herearefiverelateddiscussions & articles.

И вот (much better) idea, что Дэвид Dorward ссылается в комментариях выше:

<label for="explanation">Please describe why</label> 
<textarea name="explanation" id="explanation"></textarea> 
+1

Атрибут for должен соответствовать идентификатору, а не имени! (В противном случае это было бы несовместимо с переключателями) – Quentin

+1

+1 Отличная работа, отличный ответ. –

+0

@ Давид Дорвард, ты очень прав, сэр! Исправлена. – Dolph

-2
<textarea onClick="javascript: this.value='';">Please describe why</textarea> 
+0

Почему минус 1, он делает то, что спрашивал плакат. – user318747

+2

Сдвиг не мой, но это решение вытирает текстовое поле * каждый раз, когда пользователь нажимает на него. –

5

Try:

<input name="mytextbox" onfocus="if (this.value=='Please describe why') this.value = ''" type="text" value="Please Describe why"> 
+1

Это не текстовое поле, поэтому -1. Это удаляет только текст образца, поэтому +1. –

4

вы имели в виду, как это для текстового поля?

<input type="text" onblur="if(this.value == '') this.value='SEARCH';" onfocus="if(this.value == 'SEARCH') this.value='';" size="15" value="SEARCH" name="xSearch" id="xSearch"> 

Или это для textarea?

<textarea id="usermsg" rows="2" cols="70" onfocus="if(this.value == 'enter your text here') this.value='';" onblur="if(this.value == '') this.value='enter your text here';" >enter your text here</textarea> 
+0

Зачем мне минус? – tildy

+0

Моя версия очищает только значение по умолчанию. Решение Dolph очищает все в текстовом поле/textarea, а не только значение по умолчанию. – tildy

0

Лучшее решение, что я знаю, до сих пор:

<textarea name="message" onblur="if (this.value == '') {this.value = 'text here';}" onfocus="if (this.value == 'text here') {this.value = '';}">text here</textarea> 
35

Почему бы просто не использовать атрибут заполнитель?

<textarea placeholder="Please describe why"></textarea> 

Это поместит ваш текст наполнителя в серый цвет, который автоматически исчезнет, ​​когда пользователь нажмет на текстовое поле. Кроме того, он снова появится, если он потеряет фокус, а текстовая область пуста.

+5

Это только HTML5. – harrymc

-1
<textarea name="post" id="post" onclick="if(this.value == 'Write Something here..............') this.value='';" onblur="if(this.value == '') this.value='Write Something here..............';" >Write Something here..............</textarea> 
+0

его лучший способ – Heart

6

Это ваш файл Javascript:

function yourFunction(){ 
    document.getElementById('yourid').value = ""; 
}; 

Это HTML-файл:

<textarea id="yourid" > 
    Your text inside the textarea 
    </textarea> 
    <button onClick="yourFunction();"> 
    Your button Name 
    </button> 
-1

JQuery атрибут Val() должен делать эту работу. Вы можете сделать $('#YourTextareaID').click(function(e) { e.target.value = ''; }).

+1

'val()' является атрибутом jQuery, а не чистым JS, вам нужно это упомянуть. – william44isme

0

Просмотрите приведенную ниже ссылку на страницу, которую я нашел. Это кажется очень хорошим решением проблемы и не очищает текст, если пользователь вводит данные и снова кратковует окно.

http://www.yourhtmlsource.com/forms/clearingdefaulttext.html

-1

Вы можете попробовать этот код,

<textarea name="textarea" cols="70" rows="2" class="searchBox" id="textarea" onfocus="if(this.value == 'Please describe why') this.value='';" onblur="if(this.value == '') this.value='Please describe why';">Please describe why</textarea> 
Смежные вопросы