2017-09-02 92 views
0

我覺得這是我的職能問題消失。基本上,當我點擊搜索欄時,我不得不刪除文本「搜索...」,而不是能夠輸入它。佔位符「搜索...」不是當我運行當前的代碼

 \t 
 
      function active(){ 
 
    \t \t  var searchBar = document.getElementById('searchBar'); 
 

 
    \t \t  if(searchBar.value == 'Search...') 
 
        { 
 
    \t \t \t  searchBar.value = ''; 
 
    \t \t \t  searchBar.placeholder = 'Search...'; 
 
    \t \t  } 
 
    \t  } 
 

 
    \t  function inactive(){ 
 
    \t \t  var searchBar = document.getElementById('searchBar'); 
 

 
    \t \t  if(searchBar.value == '') 
 
        { 
 
    \t \t \t  searchBar.value = 'Search...'; 
 
    \t \t \t  searchBar.placeholder = ''; 
 
        } 
 
      }
\t <form action="search.php" method="post"> 
 

 
    \t \t <input type="text" id="searchBar" placeholder="" value="Search..." maxlength="30" autocomplete="on" onMouseDown="active();" onBlur="inactive();"/><input type="submit" id="searchBtn" value="Go!" /> 
 

 
    \t </form>

+0

爲什麼你使用'value'而不是'placeholder'?這就是爲什麼我們有'placeholder'爲... – Dekel

+0

我不知道那個好,並基於這一關我在網上找到的HTML代碼。如果我擺脫了價值,並將該文本插入佔位符,我會好嗎? – Nate

+0

只需使用'placeholder'屬性... – Li357

回答

0

您的代碼沒有任何意義......

您只能使用佔位符:

 \t 
 
      function active(){ 
 
    \t \t  var searchBar = document.getElementById('searchBar'); 
 

 
    \t \t  if(searchBar.placeholder == 'Search...') 
 
    \t \t \t  searchBar.placeholder = ''; 
 
    \t  } 
 

 
    \t  function inactive() 
 
      { 
 
    \t \t  var searchBar = document.getElementById('searchBar'); 
 

 
    \t \t  if(searchBar.value == '') 
 
    \t \t \t  searchBar.placeholder = 'Search...'; 
 
      }
\t <form action="search.php" method="post"> 
 
    \t \t <input type="text" id="searchBar" placeholder="Search..." maxlength="30" autocomplete="on" onMouseDown="active();" onBlur="inactive();"/><input type="submit" id="searchBtn" value="Go!" /> 
 
    \t </form>

注意:默認情況下,您必須定義它!

我會告訴你另一個祕密:當你鍵入一個佔位符的文本框的東西,佔位符會dissapear,但我認爲這是邏輯。

而且更容易使用三元條件:如果你想改變佔位符的顏色屬性,你可以使用這個

var searchBar = document.getElementById('searchBar'); 
 
var isFocused = false; 
 

 
function onFocus() 
 
{ 
 
    isFocused = true; 
 
    changeHolder(); 
 
} 
 

 
function onLostFocus() 
 
{ 
 
    isFocused = false; 
 
    changeHolder(); 
 
} 
 

 
function changeHolder() 
 
{ 
 
    searchBar.placeholder = isFocused ? '' : 'Search...'; 
 
}
 \t <form action="search.php" method="post"> 
 
     \t \t <input type="text" id="searchBar" placeholder="Search..." maxlength="30" autocomplete="on" onMouseDown="onFocus();" onBlur="onLostFocus();"/><input type="submit" id="searchBtn" value="Go!" /> 
 
     \t </form>

和:

Change an HTML5 input's placeholder color with CSS

我希望這有助於。

0

你的問題就出在使用value屬性,而不是placeholder屬性。 value屬性實際上會將文本放入文本框中。佔位符屬性添加一個佔位符,顯示示例文本,當您單擊它時消失。

因此改變:

<input placeholder="" value="Search..." > 

到:

<input placeholder="Search..." > 

這取決於你正在做的,當然的,但它似乎並不像你甚至不需要JavaScript代碼。所以試試沒有JavaScript,看看它是否符合你的期望。

相關問題