為文本框input添加文字輸入提示,H5為input提供了一個placeholder屬性。在支持H5的瀏覽器中,用此屬性設置輸入提示,簡單方便,但是對於IE8以下版本,都不支持placeholder屬性,此時必須通過另外的方式來實現輸入提示。
其實,我們可以利用label標簽來模擬placeholder屬性。先看例子,后解釋:
<!DOCTYPE html> <html> <head> <script type="text/javascript"> function inputEvent(obj){ if(obj.value){ document.getElementsByTagName('label')[0].style.visibility = "hidden"; }else{ document.getElementsByTagName('label')[0].style.visibility = "visible"; } } function labelEvent(){ document.getElementsByTagName('input')[0].focus(); } </script> </head> <body> <div> <label style="position:absolute;color:gray;" onclick="labelEvent()">User Name</label> <input type="text" onkeyup="inputEvent(this)" /> </div> </body> </html>
看到這里估計就很清楚了,label標簽本來是為input標簽定義標注的,這里把label標簽的樣式設置為絕對定位,定位到input輸入框中,然后再利用click事件和keyup事件來控制label的顯示及隱藏,通過這種方式可以“屏蔽”placeholder屬性的跨瀏覽器的兼容性問題。