2010-07-23 76 views
0

我想用一个小的jQuery来“隐藏”Google搜索框中的初始值,当你在框中单击时,我错过了一些东西。如何从Google搜索框中删除默认的Google搜索值?

下面是搜索框代码:

<div id="search_box"> 
<form action="http://mfrp.ehclients.com/search_results" id="cse-search-box"> 
    <div> 
    <input type="hidden" name="cx" value="017425724926122041548:1ccj3d-e1-s" /> 
    <input type="hidden" name="cof" value="FORID:9" /> 
    <input type="hidden" name="ie" value="UTF-8" /> 
    <input type="text" id="q" name="q" value="Search..." size="31" /> 
    </div> 
</form> 
<script type="text/javascript" src="http://www.google.com/cse/brand?form=cse-search-box&amp;lang=en"></script> 
</div> 

这里是jQuery的:

<script type="text/javascript"> 
    $('#q').click(function() {   
    if($(this).val() == 'Search...') 
    $(this).val(''); 
    }); 
</script> 

唯一的问题是,这是行不通的。这里是page

我希望有一些帮助整理出来。

感谢,

阿甘

+0

尝试console.log($(this).val())并查看它给了你什么。 – hookedonwinter 2010-07-23 22:56:47

+0

当我把你的javascript代码粘贴到firebug中并运行它时,它会做它应该做的事情。 (文档).ready(函数(){/ *代码* /} – Davis 2010-07-23 22:57:46

+0

嗨Luvat,你是正确的!我添加了(文档).ready并且它工作。 – fmz 2010-07-23 23:46:19

回答

1

当您的代码需要运行时,DOM元素才能找到,因此$("#q")找到要绑定的id="q"元素。这意味着你的脚本或者需要运行它在页面需要的元素后(例如<body>结束),或者当DOM完全准备好,像这样:

$(function() { 
    $('#q').click(function() {   
    if($(this).val() == 'Search...') 
     $(this).val(''); 
    }); 
}); 

如果你不这样做,而$("#q")选择器没有找到任何元素......没有什么可以运行.click(),它绑定该处理程序。

认为你会希望是相反的,以及,这应该是这样的:

$(function() { 
    $('#q').focus(function() {   
    if($(this).val() == 'Search...') $(this).val(''); 
    }).blur(function() { 
    if($(this).val() == '') $(this).val('Search...'); 
    }); 
}); 

这将会把“搜索...”放回盒子里,如果它是空的,有人点击外部,依靠.focus().blur()而不是.click()

+0

嗨尼克,你的61.5K点是很好的。谢谢你的解决方案。 – fmz 2010-07-24 17:12:52

+0

@fmz:欢迎:) – 2010-07-24 17:32:48

0

demo

你已经被伪造由谷歌...文本框中有一个背景,看起来好像有什么价值... ...你应该检查了在开发工具..

所以只是尝试删除它模糊...

$('#q').blur(function(){ 
    $(this).css('background','none'); 
    if(this.value == '') { 
     this.value = this.defaultValue; 
    } 
}).focus(function() {   
    if(this.value == this.defaultValue) { 
     this.value = ''; 
    } 
});​ 
+0

我试过了和搜索...仍然停留在那里 – fmz 2010-07-23 23:40:07