Обновлено: Эта новая версия позволяет повторно использовать один и тот же код для нескольких <input>
элементов
Попробуйте: http://jsfiddle.net/XTKu8/
HTML
<input id='name' class='italic' value='some name' type='text' />
<input id='email' class='italic' value='example@email.com' type='text' />
jQuery
$('.italic').each(function() { $(this).data('defaultValue',$(this).val()); })
.focus(function() {
var $th = $(this);
if($th.val() == $th.data('defaultValue'))
$th.toggleClass('italic').val('');
})
.blur(function() {
var $th = $(this);
if($th.val() == '')
$th.toggleClass('italic').val($th.data('defaultValue'));
});
Оригинал
Попробуйте: http://jsfiddle.net/ZRLK2/
HTML
<input id='email' type='text' />
jQuery
$('#email').focus(function() {
var $th = $(this);
if($th.val() == 'example@email.com') {
$th.val('')
.css({'color':'#000','font-style':'normal'});
}
})
.blur(function() {
var $th = $(this);
if($th.val() == '') {
$th.val('example@email.com')
.css({'color':'#888','font-style':'italic'});
}
})
.val('example@email.com')
.css({'color':'#888','font-style':'italic'});
РЕДАКТИРОВАТЬ: Я забыл про курсив, и должен был использовать фокус.Обновлено.
Кроме того, вместо установки определенных стилей CSS вы можете разместить эти стили в классе и использовать .addClass()
и .removeClass()
, или просто .toggleClass()
.
Как отмечалось karim79 , лучше добавлять классы вместостили.Вы можете сделать это вместо этого:
.italic {
color:#888;
font-style:italic;
}
Тогда
$th.val('')
.removeClass('italic');
$th.val('example@email.com')
.addClass('italic');