jQuery это () для textarea? - PullRequest
       4

jQuery это () для textarea?

4 голосов
/ 13 сентября 2010

Эй! Еще одна небольшая проблема (не является ли это ошибкой в ​​jQuery?).

У меня есть текстовая область:

<textarea>Something</textarea>

Я хочу стереть «Что-то» после нажатия, так:

$("textarea").click(function() {
     $(this).text("");
});

Хорошо, пока. Существуют проблемы, когда я хочу изменить текст «Что-то» ТОЛЬКО, когда в моем текстовом поле есть «Что-то»:

$("textarea").click(
function() {
    if ($(this).text() === "Something") {
        $(this).text("");
        }
});

Он работает потрясающе для всех различных входов, но не для текстовой области. И он отлично работает без цикла "если", так что здесь происходит? :)

Большое спасибо!

EDIT

Хорошо, вот мой "настоящий код":

$(".inp").click(
function(){
    if($(this).val() === "Text" || $(this).val() === "Name" || $(this).val() === "Mail" || $(this).val() === "Site" ) {
        $(this).val(""); 
    }
});

HTML:

<form>
<fieldset>
<input type="text" name="name" class="inp" value="Name" /> <br />
<input type="text" name="email" class="inp" value="Mail" /> <br />                             <input type="text" name="site" class="inp" value="Site" />  
<textarea rows="12" name="text" class="inp">Text </textarea>
</div>     

Работает для всех входов, кроме textarea.

Ответы [ 3 ]

5 голосов
/ 13 сентября 2010

Используйте .val("") вместо .text("")

Если вы манипулируете контентом textareas с помощью JavaScript, используйте атрибут value ... содержимое узла только для представления HTML.

2 голосов
/ 13 сентября 2010

Вы уверены, что в текстовой области нет пробелов (или новых строк)? как то так:

<textarea>
Something
</textarea>

В этом случае вы можете добавить .trim() к $(this).text(), это удалит начальные и конечные пробелы.

Я создал пример выше, и он работает. Что-то еще: я бы предложил использовать .focus() вместо .click, чтобы он все еще работал, если пользователь использует клавиатуру для навигации. Вот пример с .focus()

0 голосов
/ 13 сентября 2010

После «Текст» и до «» были пробелы.`$ (this) .val () работает с текстовыми областями, но текст в текстовой области был« Текст », а не« Текст ».

Пример JSFiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...