jquery подсказка не работает с textarea - PullRequest
1 голос
/ 04 марта 2012

моя подсказка jquery работает только в текстовом поле, а не в текстовой области. Как заставить это работать на обоих.

$(document).ready(function() {
//Shows the title in the text box, and removes it when modifying it
$('input[title]').each(function(i) {
if(!$(this).val()) {
    $(this).val($(this).attr('title')).addClass('hint');
}

работает только на:

<input type="text" name="name" title="Full Name" >

но не включен:

<textarea title="Enter Message Here"name="message" rows=8 cols=30 </textarea>

Ответы [ 2 ]

3 голосов
/ 04 марта 2012

Ваш текущий селектор, $('input[title]') говорит, чтобы выбрать входы с установленным атрибутом заголовка.Это ничего не говорит о текстовых областях.

Вам нужно сделать это:

$('input[title],textarea[title]')

Или, возможно, лучше:

$(':input[title]')   // note the colon

Первый говорит, чтобы выбрать всеэлементы ввода с атрибутом title и все элементы textarea с атрибутом title.Второй использует jQuery :input селектор , который автоматически захватывает все элементы input, textarea, select и button (т.е. все элементы формы), но в этом случае ограничивается теми, у которых есть атрибут title.

Рабочая демонстрация: http://jsfiddle.net/qMLRK/

ПРИМЕЧАНИЕ: вы должны учитывать пробелы в полях, потому что <textarea> </textarea> это не пусто:

if ($.trim($(this).val()) === "")

// NOT

if(!$(this).val())
0 голосов
/ 04 марта 2012

JQuery делает все как выбор.

Текстовое поле не является типом ввода, поэтому просто добавьте свой выбор JQuery.

$('input[title],textarea[title]').each(function(i) {

Это должно решить эту проблему.Вы также можете указать оба класса :), затем просто выбрать классом, и это уменьшит ваш выбор до всего лишь (при условии, что вы использовали текстовое поле имени в качестве класса)

$ ('. Textbox').каждый

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