Подтвердить что ты не робот

Как удалить местозаполнитель в фокусе

Я сделал эту простую функцию для добавления placeholder в браузерах, которые ее не поддерживают:

DEMO

Вопрос: как я могу добавить к этой функции возможность удалить местозаполнитель, когда пользователь щелкнет внутри него?

4b9b3361

Ответ 1

Попробуйте использовать removeAttr(), например,

$('input,textarea').focus(function(){
   $(this).removeAttr('placeholder');
});

Демо-версия

Чтобы снова получить placeholder value на blur(), попробуйте это,

$('input,textarea').focus(function(){
   $(this).data('placeholder',$(this).attr('placeholder'))
          .attr('placeholder','');
}).blur(function(){
   $(this).attr('placeholder',$(this).data('placeholder'));
});

Демо 1

Ответ 2

Нет необходимости использовать функцию javascript для этого, более простым решением является:

<input type="text" placeholder="enter your text" onfocus="this.placeholder=''" onblur="this.placeholder='enter your text'" />

Ответ 3

CSS работал у меня:

input:focus::-webkit-input-placeholder {
    color: transparent;
}

Ответ 4

 $('*').focus(function(){
  $(this).attr("placeholder",'');
  });

Ответ 5

Попробуйте эту надежду, это поможет

$('input,textarea').focus(function()
{
$(this).attr('placeholder','');

});

Ответ 6

$('input').focus(function()
{
  $(this).attr('placeholder','');

});

Ответ 7

Для браузеров, которые не поддерживают местозаполнитель, вы можете использовать это: https://github.com/mathiasbynens/jquery-placeholder. Добавьте атрибут placeholder как обычно для HTML5, затем назовите этот плагин: $('[placeholder]').placeholder();. Затем используйте код Рохана Кумара и перекрестный браузер.

Ответ 8

$("input[placeholder]").each(function () {
    $(this).attr("data-placeholder", this.placeholder);

    $(this).bind("focus", function () {
        this.placeholder = '';
    });
    $(this).bind("blur", function () {
        this.placeholder = $(this).attr("data-placeholder");
    });
});

Ответ 9

Очень простое и всеобъемлющее решение для этого - это работа в Mozilla, IE, Chrome, Opera и Safari:

<input type="text" placeholder="your placeholder" onfocus="this.placeholder=''" onblur="this.placeholder='your placeholder'" />

Ответ 10

Это мое решение при нажатии не на фокусе:

$(document).on('click','input',function(){
    var $this = $(this);
    var place_val = $this.attr('placeholder');
    if(place_val != ''){
        $this.data('placeholder',place_val).removeAttr('placeholder');
    }
}).on('blur','input',function(){
    var $this = $(this);
    var place_val = $this.data('placeholder');
    if(place_val != ''){
        $this.attr('placeholder',place_val);
    }
});