@ Роатин Март прав;если вы собираетесь рассматривать текст как заполнитель, он должен быть очищен.Это само определение заполнителя.
Тем не менее, я смоделировал доказательство концепции, которую вы можете использовать по своему усмотрению.Однако мне пришлось сделать текст-заполнитель настолько легким, что его едва можно было увидеть, чтобы он не искажал передний текст слишком часто (поэтому по умолчанию это делается для очистки).
Вы можете видеть, что он работает на:http://jsfiddle.net/zYQ4Q/4/
// Create placeholder input to serve as background
var $test = $('#test');
var $placeholder = $test.clone().removeAttr('id').removeAttr('placeholder').addClass('placeholder').val($test.attr('placeholder'));
var $container = $('<span class="placeholder-container"></span>');
$container.insertAfter($test).append($test).append($placeholder);
// Basic styling
$container.css({
position: 'relative'
});
$test.css({
position: 'absolute',
left: 0,
top: 0,
zIndex: 10,
backgroundColor: 'transparent',
borderColor: 'transparent'
});
$placeholder.css('color', 'transparent');
// Behavior for focus and blur to achieve the visual effect
$test.focus(function(){
var $input = $(this);
var $placeholder = $('.placeholder', $input.parent());
$placeholder.css('color', '#e0e0e0');
}).blur(function(){
var $input = $(this);
var $placeholder = $('.placeholder', $input.parent());
if ($input.val() == '')
$placeholder.css('color', 'transparent');
}).keyup(function(){
var $input = $(this);
if ($input.val().trim() != '') {
$placeholder.val('');
} else {
$placeholder.val($input.attr('placeholder'));
}
});
ОБНОВЛЕНИЕ : Код и jsfiddle были обновлены, чтобы отразить новые изменения, основанные на комментарии ОП.Заполнитель теперь очищается после ввода текста во ввод.