2009-06-23 67 views
0

我正在嘗試爲搜索字段設置默認值。這個想法是,搜索字段具有值「搜索」,直到用戶點擊進入它,那麼它應該是空的。此外,只要它是「空白」(以「搜索」作爲值),它應該具有類「.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有關。有任何想法嗎?

謝謝!

回答

1

我發現了這個問題,我的錯誤:onBlur被調用,當用戶點擊其他地方。 onLoad僅適用於標籤BODY和FRAMESET。解決方法是在服務器端設置默認值(對於我來說,在application_controller中,如果沒有提交搜索項)。

無論如何,謝謝!

0

模糊是當一個領域失去焦點時,它無法放鬆焦點,直到焦點開始,因此您需要點擊該字段,然後單擊以查看其工作。你有沒有嘗試將類設置爲默認的.blank?

<input autocomplete="off" class="blank" .... 
2

只要給它的默認值「搜索」硬編碼,如

<input ... type="text" value="Search" /> 
2

聽起來像是你只需要初始值設定爲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

0

這是我用來做這件事的一個片段。可能有更簡單的方法,但這是有效的。任何具有.cleardefault類的項目都會在第一次mouseover時清除它的值。任何具有.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); 
     }); 
    /* 
    */ 
}); 
3

另一個想法是把佔位符的輸入類型: (請注意,這是HTML5)

<input type=text placeholder="Default text here"/>

這樣的文本框會在灰色文本顏色顯示:這裏默認的文字。點擊後,它將刪除文本並將其替換爲當前文本,並在文本空白時返回。