好的,这基本上就是我这样做的。我将标签放在字段中,然后当页面加载时,我使用.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('');
}
});
});
我没有在浏览器中运行或测试过,但从理论上说这应该可行(我以前做过)
此外,如果用户没有编辑文本,我们就不会再次使用标签文本填充标签文本....