2010-07-23 75 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