日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

兩種方法基于jQuery實(shí)現(xiàn)IE瀏覽器兼容placeholder效果

placeholder是HTML5input的屬性之一,在不同的瀏覽器( 支持HTML5的現(xiàn)代瀏覽器 )中會(huì)有略微不同的顯示效果:
在Chrome( v31.0.1650.63 m)、Firefox( v21.0 )、360安全( v6.3 極速模式 )中,輸入欄獲得焦點(diǎn)后,提示文字并不消失,如圖( Chrome ):
獲得焦點(diǎn)前:

兩種方法基于jQuery實(shí)現(xiàn)IE瀏覽器兼容placeholder效果


獲得焦點(diǎn)時(shí):
兩種方法基于jQuery實(shí)現(xiàn)IE瀏覽器兼容placeholder效果


偏偏I(xiàn)E11要搞點(diǎn)特殊:
獲得焦點(diǎn)前:
兩種方法基于jQuery實(shí)現(xiàn)IE瀏覽器兼容placeholder效果


獲得焦點(diǎn)時(shí):
兩種方法基于jQuery實(shí)現(xiàn)IE瀏覽器兼容placeholder效果


也就是說(shuō)獲得焦點(diǎn)時(shí)提示的文字會(huì)消失 。
非現(xiàn)代瀏覽器( 例如 IE6-IE9 )是不支持placeholder屬性的 ?,F(xiàn)在用jQuery來(lái)使這些非現(xiàn)代瀏覽器也同樣能能實(shí)現(xiàn)placeholder的顯示效果,第一種方法實(shí)現(xiàn)的是IE11這種效果,也就是輸入框獲得焦點(diǎn)時(shí)提示文字會(huì)消失;如果要想獲得類似Chrome的效果,即輸入框獲得焦點(diǎn)時(shí)提示文字并不消失,可以使用第二種方法 。
方法一
效果預(yù)覽:
http://jsfiddle.net/L57b25yr/embedded/result/
思路是,首先判斷瀏覽器是否支持placeholder屬性,如果不支持的話,就遍歷所有input輸入框,獲取placeholder屬性的值填充進(jìn)輸入框作為提示信息,同時(shí)字體設(shè)置成灰色 。
當(dāng)輸入框獲得焦點(diǎn)( focus )同時(shí)輸入框內(nèi)文字等于設(shè)置的提示信息時(shí),就把輸入框內(nèi)清空;
當(dāng)輸入框失去焦點(diǎn)( blur )同時(shí)輸入框內(nèi)文字為空時(shí),再把獲取的placeholder屬性的值填充進(jìn)輸入框作為提示信息,同時(shí)字體設(shè)置成灰色;
當(dāng)輸入框內(nèi)有輸入( keydown )時(shí),此時(shí)輸入框內(nèi)的提示信息已經(jīng)由focus事件清除,此時(shí)只需要把字體再恢復(fù)成黑色即可 。
此方法的缺點(diǎn)是,不適用于加載完DOM時(shí)即獲得焦點(diǎn)的輸入框,因?yàn)樵谟脩舻慕嵌?,加載完頁(yè)面時(shí)看到的獲得焦點(diǎn)的那個(gè)輸入框,它的提示文字是看不到的 。
HTML:
input type="text" id="uname" name="uname" placeholder="請(qǐng)輸入用戶名"/CSS:
.phcolor{ color:#999;}JS:
$(function(){//判斷瀏覽器是否支持placeholder屬性supportPlaceholder=’placeholder’in document.createElement(’input’),placeholder=function(input){var text = input.attr(’placeholder’),defaultValue = https://www.rkxy.com.cn/dnjc/input.defaultValue;if(!defaultValue){input.val(text).addClass("phcolor");}input.focus(function(){if(input.val() == text){$(this).val("");}});input.blur(function(){if(input.val() == ""){$(this).val(text).addClass("phcolor");}});//輸入的字符不為灰色input.keydown(function(){$(this).removeClass("phcolor");});};//當(dāng)瀏覽器不支持placeholder屬性時(shí),調(diào)用placeholder函數(shù)if(!supportPlaceholder){$(’input’).each(function(){text = $(this).attr("placeholder");if($(this).attr("type") == "text"){placeholder($(this));}});}});經(jīng)過(guò)測(cè)試可以達(dá)到IE11placeholder的顯示效果 。
方法二
此方法的思路是做一張含有提示文字的圖片作為input輸入框的背景圖,初始時(shí)獲得焦點(diǎn)同時(shí)加載背景圖;
背景圖如下:
兩種方法基于jQuery實(shí)現(xiàn)IE瀏覽器兼容placeholder效果


當(dāng)輸入框不為空時(shí),去掉背景圖;
當(dāng)輸入框?yàn)榭諘r(shí),加載背景圖;
當(dāng)用戶鍵盤(pán)按鍵且輸入框不為空( 輸入字符 )時(shí),去掉背景圖;

推薦閱讀