Я сделал эту простую функцию для добавления placeholder в браузерах, которые ее не поддерживают:
Вопрос: как я могу добавить к этой функции возможность удалить местозаполнитель, когда пользователь щелкнет внутри него?
Я сделал эту простую функцию для добавления placeholder в браузерах, которые ее не поддерживают:
Вопрос: как я могу добавить к этой функции возможность удалить местозаполнитель, когда пользователь щелкнет внутри него?
Попробуйте использовать 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'));
});
Нет необходимости использовать функцию javascript для этого, более простым решением является:
<input type="text" placeholder="enter your text" onfocus="this.placeholder=''" onblur="this.placeholder='enter your text'" />
CSS работал у меня:
input:focus::-webkit-input-placeholder {
color: transparent;
}
$('*').focus(function(){
$(this).attr("placeholder",'');
});
Попробуйте эту надежду, это поможет
$('input,textarea').focus(function()
{
$(this).attr('placeholder','');
});
$('input').focus(function()
{
$(this).attr('placeholder','');
});
Для браузеров, которые не поддерживают местозаполнитель, вы можете использовать это:
https://github.com/mathiasbynens/jquery-placeholder.
Добавьте атрибут placeholder как обычно для HTML5, затем назовите этот плагин: $('[placeholder]').placeholder();
. Затем используйте код Рохана Кумара и перекрестный браузер.
$("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");
});
});
Очень простое и всеобъемлющее решение для этого - это работа в Mozilla, IE, Chrome, Opera и Safari:
<input type="text" placeholder="your placeholder" onfocus="this.placeholder=''" onblur="this.placeholder='your placeholder'" />
Это мое решение при нажатии не на фокусе:
$(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);
}
});