【发布时间】:2011-02-28 14:01:23
【问题描述】:
我有以下 jQuery 代码:
$(".SearchForm input:text").each(function(){
/* Sets the current value as the defaultvalue attribute */
if(allowedDefaults.indexOf($(this).val()) > 0 || $(this).val() == "")
{
$(this).attr("defaultvalue", $(this).val());
$(this).css("color","#9d9d9d");
/* Onfocus, if default value clear the field */
$(this).focus(function(){
if($(this).val() == $(this).attr("defaultvalue"))
{
$(this).val("");
$(this).css("color","#4c4c4c");
}
});
/* Onblur, if empty, insert defaultvalue */
$(this).blur(function(){
alert("ud");
if($(this).val() == "")
{
$(this).val($(this).attr("defaultvalue"));
$(this).css("color","#9d9d9d");
}else
{
$(this).removeClass("ignore");
}
});
}
});
我使用这段代码在我的一些输入字段中插入一些默认文本,而没有输入任何其他内容。这意味着当用户看到我的搜索表单时,默认值将被设置为输入的属性-字段,这将是显示的值。当用户在输入框内点击时,默认值将被移除。
当用户第一次看到输入字段时是这样的:
<input type="text" value="" defaultvalue="From" />
这很好用,但我有一个很大的挑战。如果用户已经发布了表单,并且在其中一个字段中输入了一些内容,那么如果用户从输入字段中删除了文本,我就无法在字段中显示默认值。 发生这种情况是因为文本字段的值仍然包含某些内容,即使用户删除了内容。所以我的问题是如何在提交表单时显示默认值,然后用户删除输入的内容?
当表单被提交时,输入看起来像这样,并且一直这样直到再次提交表单:
<input type="text" value="someValue" defaultvalue="From" />
所以我需要在用户删除字段中的内容并从字段中移除焦点后立即在输入字段中显示默认值。
大家都明白我的问题是什么吗?否则就问吧,我已经为此苦苦挣扎了很长时间,所以任何帮助都将不胜感激。
提前致谢, 金安徒生
【问题讨论】:
标签: jquery input default-value