2013-10-09 68 views
0

這是簡單的js腳本,用於清除和恢復輸入值,onFocus-Blur .. 它工作正常,但如果我輸入文本,例如:aaa,則刷新頁面並清除輸入通過退格鍵或通過另一種方式它節省「AAA」在我的默認值變量,然後值 恢復在「AAA」而不是「搜索」 cleard輸入值...當頁面刷新時重置變量值

是否有任何函數或方法在JavaScript(jQuery的)在刷新頁面後清除可變內存, 不能通過url重新加載-PressEnter ..只能使用F5刷新或使用瀏覽器中的刷新箭頭按鈕?

您可能會檢查在FireFox中,Chrome在Chrome中是沒有問題的,Chrome本身就是它。

希望有人幫助..:(

感謝))

// clear-fill search input 
var mySearch = $('input[name=newsSearch]'); 
var defaultValue = mySearch.val(); 
mySearch.focus(function(){ 
if($(this).val() == defaultValue) { 
$(this).val(''); 
} 
}); 

mySearch.blur(function(){ 
if($(this).val() == '') { 
$(this).val(defaultValue); 
} 
}); 

回答

0

在支持HTML5元素,你可以使用placeholder屬性上input這樣做沒有任何JavaScript的現代瀏覽器:

HTML

<input name="newsSearch" type="text" placeholder="Search" /> 

,你可以添加一些JavaScript支持舊版本瀏覽器做不支持佔位符屬性:

的Javascript

$(document).ready(function() { 
    function add() { 
     if ($(this).val() === '') { 
      $(this).val($(this).attr('placeholder')).addClass('placeholder'); 
     } 
    } 

    function remove() { 
     if ($(this).val() === $(this).attr('placeholder')) { 
      $(this).val('').removeClass('placeholder'); 
     } 
    } 

    // Create a dummy element for feature detection 
    if (!('placeholder' in $('<input>')[0])) { 

     // Select the elements that have a placeholder attribute 
     $('input[placeholder], textarea[placeholder]').blur(add).focus(remove).each(add); 

     // Remove the placeholder text before the form is submitted 
     $('form').submit(function() { 
      $(this).find('input[placeholder], textarea[placeholder]').each(remove); 
     }); 
    } 
}); 

Demo

進一步閱讀

+0

是啊,我知道,但我不希望使用HTML5,我更喜歡有老的瀏覽器也支持。 thanx)) – Duke

+0

看看我已經鏈接到的javascript後備。它給不支持「佔位符」的瀏覽器提供回退。 – 3dgoo