Хорошо, это в основном то, как я это делаю. Я размещаю метки внутри полей, затем, когда страница загружается, я сохраняю метки скрытым способом, используя .data (). Когда форма отправляется, если она содержит то же самое, что и в .data (), тогда я очищаю ее (или вы можете запретить отправку, если хотите заполнить поле)
$(document).ready(function(){
// this will make sure we always remember what the values were:
$("form.myform input[type='text']").each(function(){
// I like to add a class as well, so I can make the label text in a lighter color
if ($(this).val().length > 0) {
$(this).data('label', $(this).val()).addClass('label');
}
});
// this will clear the text when the input receives focus:
$("form.myform input[type='text']").focus(function(){
if ($(this).data('label') == $(this).val()) {
$(this).val('').removeClass('label');
}
});
// this will make sure the fields don't get submitted like that, but won't stop
// the form from being submitted....
$("form.myform").submit(function(){
$(this).find("input[type='text']").each(function(){
if ($(this).val() == $(this).data('label')) {
$(this).val('');
}
});
});
Я не запускал и не тестировал в браузере, но теоретически это должно работать (я делал это раньше)
Кроме того, мы больше не заполняем поле текстом надписи, как только он потерял фокус, если пользователь не редактировал текст ....