немного магии с CSS3 и малость JS:
Только для браузеров поддерживающие CSS3, хотя под IE дописать не проблема
<style type="text/css">
label {
position: relative;
}
label span {
position: absolute;
left: 0;
width: 100%;
top: 1px; /* управлять высотой подсказки */
/* Стиль для placeholder */
text-align: center;
color: #aeaeae;
font-size: 14px;
font-family: Tahoma;
}
label input:focus + span, label input:not([value=""]) + span {
display: none;
}
</style>
<!--[if lte IE 8]><style type="text/css">
/* В ИЕ ниже девятой версии просто не будет отображать подсказку */
label input + span {
display: none;
}
</style><![endif]-->
<label>
<input type="text" value="" onchange="this.setAttribute('value', this.value);" />
<span>Please enter name</span>
</label>
<label>
<input type="text" value="" onchange="this.setAttribute('value', this.value);" />
<span>Please enter email</span>
</label>
<label>
<input type="password" value="" onchange="this.setAttribute('value', this.value);" />
<span>Please enter password</span>
</label>