本文實例講述了jQuery實現IE輸入框完成placeholder標簽功能的方法。分享給大家供大家參考,具體如下:
如果在輸入框加上placeholder="xx"屬性,例如:
<input type="text" placeholder="請輸入關鍵詞"/>
則可以在谷歌瀏覽器等高級瀏覽器的輸入框中實現替換文本的功能,也就是得到如下圖所示的對話框:
但是這個屬性在WIN7默認的瀏覽器IE8中無法兼容,更不要說IE6了。也就是說IE里面不支持placeholder這個標簽。
不信的話,大可以把這段代碼拉到IE8里面運行下試試,你只不過是得到一個空的對話框
在IE里面要實現這個要用組件失去焦點blur與得到焦點focus里面做,詳細可以參考《JavaScript組件焦點與頁內錨點間傳值的方法》
其實可以完全不用jQuery,這里使用這是為了復習下《jQuery通過控制節點實現僅在前臺通過get方法完成參數傳遞》
思想很簡單,一開始這個文本框默認為#cccccc灰色字體,值為“請輸入關鍵詞”,當得到焦點之后,把它的顏色設置為#000000黑色,值為空,一旦其失去焦點,如果值為空,馬上把其恢復默認的#cccccc灰色字體,值為“請輸入關鍵詞”
代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>搜索輸入框替換文本</title> <script type="text/javascript" src="js/jquery-1.11.1.js"></script> </head> <body> <form id="test"> <input id="searchKeyword" type="text" maxlength="30" value="請輸入關鍵詞" style="color:#cccccc" /> </form> </body> </html> <script type="text/javascript"> $(document).ready(function(){ var isthisnull = true ; $("#searchKeyword").focus(function(){ if ($(this).val() == "請輸入關鍵詞" && isthisnull) { $(this).val(""); $(this).attr("style","color:#000000"); isthisnull = false; } }); $("#searchKeyword").blur(function(){ if ($(this).val() == "") { $(this).val("請輸入關鍵詞"); $(this).attr("style","color:#cccccc"); isthisnull = true; } }); }); </script>
這里注意的是,是加入一個isthisnull的布爾值來判斷其是否為空,是為了判斷用戶是否要輸入“請輸入關鍵詞”,
不能認為文本框里面有“請輸入關鍵詞”就是空,如果用戶自己輸入“請輸入關鍵詞”呢?
這里也不應該用jquery或者javascript來取color或者style的值是否為"#cccccc"或者“color:#cccccc”來判斷,因為通過$(this).css("color")
來取color,在不瀏覽器輸出的結果是不一樣的,而取style的話,ie會認為這是一個object,而不是字符串
設置一個isthisnull,也可以為后面進一步的表單驗證做準備
最終在IE中得到如下效果:
更多關于jQuery相關內容感興趣的讀者可查看本站專題:《jQuery頁面元素操作技巧匯總》、《jquery選擇器用法總結》、《jQuery表單操作總結》、《jQuery常用插件及用法總結》、《jQuery表格(table)操作技巧匯總》、《jQuery擴展技巧總結》及《jQuery常見經典特效匯總》
希望本文所述對大家jQuery程序設計有所幫助。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com