[JS]在文字方塊裡面顯示提示文字

  • 11739
  • 0

利用簡單的 JavaScript 在文字方塊裡面顯示提示文字

通常在輸入表單時會看到一堆的文字方塊, (EX: 加入會員)
或是在頁面上有一些搜尋的功能,也會看到文字方塊。

往往文字方塊的數目一多,
會讓使用者分不清楚哪個文字方該填啥進去,
這時候程式開發人員如果能先在文字方塊中先顯示一些提示文字
在使用者將滑鼠點選進去時,提示文字又會自動消失,而不影響輸入,
這樣就可做到 User Friendly 的要求。

這樣的功能我將透過 JavaScript 來介紹,
1. 首先在版面上面放置一個文字方塊的元件: 

1 <input type="text" name="mail" id="mail" runat="server" value="請輸入E-Mail" onfocus="onfocusState()" onblur="onfocusState()"/>

這邊有幾個要注意的地方:
a. 文字方塊有 ASP 的元件可用,也有傳統 HTML 的元件,在這個範例中使用傳統的 HTML 元件。(其實是我自己懶...)
b. 屬性方面,如果你希望讓 C# 可以直接抓值,不要忘記加上 runat="server" 屬性。
c. value 的地方輸入你希望提示使用者的文字。
d. 最後將 onfocus 以及 onblur 全部指向同一個程式。
(當然也可以改成兩個程式來執行,不過就閱讀性與維護性來說,越少的程式碼越容易重複再被利用)

 2. JavaScript 程式碼: 

01
02 function onfocusState()  
03   {  
04      if(document.getElementById("mail").value=="請輸入E-Mail")  
05      {  
06         document.getElementById("mail").value=""  
07      }
  
08      else if(document.getElementById("mail").value=="")  
09      {  
10         document.getElementById("mail").value="請輸入E-Mail"  
11      }
  
12      else
13      {}  
14   }

 

如此一來,在尚未點選文字方塊時,
文字方塊會出現"請輸入E-Mail"的提示字樣,
點擊進去之後,提示文字便會消失。


假如...
用戶在沒有輸入任何文字的情形下將焦點移到其他地方,
這時文字方塊中的提示文字將再自動顯示。

如果,
在輸入了文字的情形下將焦點移到其他地方,
這時文字方塊會維持現況,
提示文字不會出現。