本文主要和大家介紹jQuery實現IE輸入框完成placeholder標籤功能的方法,涉及jQuery事件響應及針對頁面元素屬性的動態操作相關實現技巧,需要的朋友可以參考下,希望能幫助到大家。
如果在輸入框加上placeholder="xx"屬性,例如:
<input type="text" placeholder="请输入关键词"/>
則可以在Google瀏覽器等進階瀏覽器的輸入框中實作替換文字的功能,也就是得到如下圖所示的對話框:
但是這個屬性在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中得到如下效果:
相關推薦:
React Native佔位placeholder的使用方法詳解
以上是jQuery實作IE輸入框完成placeholder標籤代碼分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!