Javascript 设置搜索字段的默认值-请帮助!
我正在尝试为搜索字段设置默认值。其思想是,搜索字段的值为“Search”,直到用户点击它,那么它应该是空的。此外,只要它是“blank”(值为“Search”),它就应该具有类“.blank” 我试过这个Javascript 设置搜索字段的默认值-请帮助!,javascript,jquery,textfield,Javascript,Jquery,Textfield,我正在尝试为搜索字段设置默认值。其思想是,搜索字段的值为“Search”,直到用户点击它,那么它应该是空的。此外,只要它是“blank”(值为“Search”),它就应该具有类“.blank” 我试过这个 <input autocomplete="off" class="" id="searchq" name="searchq" onblur="if (this.value == '') { this.value='Search'; jQuery(this).addClass('blank
<input autocomplete="off" class="" id="searchq" name="searchq" onblur="if (this.value == '') { this.value='Search'; jQuery(this).addClass('blank'); };" onfocus="if (this.value == 'Search') { this.value=''; jQuery(this).removeClass('blank'); };" type="text" value="" />
到目前为止,它还可以工作,但当我加载站点时,该字段只是空的。我必须先单击字段内部,然后单击页面上的某个位置,才能使效果生效
我想这和onBlur有关。有什么想法吗
谢谢 我发现了问题,我的错误:当用户单击其他地方时,会调用onBlur。仅允许标记主体和框架集使用onLoad。解决方案是在服务器端的某个位置设置默认值(对于我来说,如果没有提交搜索词,则在应用程序\控制器中)
无论如何谢谢你 模糊是指当一个字段失去焦点时,它不能失去焦点,直到它有焦点开始,因此您需要在字段中单击,然后单击“出”以查看它的工作情况。您是否尝试过将类默认设置为.blank
<input autocomplete="off" class="blank" ....
这称为水印。请参见示例只需将默认值“Search”硬编码,如中所示
<input ... type="text" value="Search" />
听起来您只需要直接在输入标记中将初始值设置为搜索
,如下所示:
<input autocomplete="off" class="blank" id="searchq" name="searchq" onblur="if (this.value == '') { this.value='Search'; jQuery(this).addClass('blank'); };" onfocus="if (this.value == 'Search') { this.value=''; jQuery(this).removeClass('blank'); };" type="text" value="Search" />
注意,我们还将初始类设置为blank
这是我用来做这件事的一个片段。可能有更简单的方法,但这是可行的。任何具有.cleardefault类的项在第一次鼠标悬停时都将清除其值。任何带有.setcleardefault类的项都将清除默认值,如果用户没有在框中放入任何内容,则在鼠标悬停时将其重置为默认值
function ClearDefault(item) {
// clear the default value of a form element
if (item.defaultValue == undefined)
item.defaultValue = item.value;
if (item.defaultValue == item.value)
item.value = '';
} // ClearDefault
function SetDefault(item) {
// if item is empty, restore the default value
if (item.value == '')
item.value = item.defaultValue;
} // SetDefault
$(document).ready(function() {
$(".cleardefault")
.mouseover(function(){
ClearDefault(this);
})
$(".setcleardefault")
.mouseover(function(){
ClearDefault(this);
})
.mouseout(function(){
SetDefault(this);
});
/*
*/
});
另一个想法是在输入类型中放置占位符:
(注意这是HTML5。)
这样,文本字段将显示为灰色文本颜色:此处为默认文本。单击后,它将删除文本并替换为当前文本,当文本为空时,它将返回