溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

HTML5中Placeholder解決新標(biāo)簽低版本瀏覽器下不兼容的示例分析

發(fā)布時間:2021-09-15 17:20:22 來源:億速云 閱讀:96 作者:柒染 欄目:web開發(fā)

HTML5中Placeholder解決新標(biāo)簽低版本瀏覽器下不兼容的示例分析,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

placeholder 屬性是 HTML5 中的新屬性,俗名叫“占位符”,功能類似于輸入框在得到焦點時,時面的默認(rèn)值會變成空白,當(dāng)失去焦點時又會顯示默認(rèn)的文本,我想大家一定使用 js/jquery制作過這樣的效果。目前只有在Mozilla Firefox 3.7+、Apple Safari 4+、Google Chrome 4+、Opera11+等現(xiàn)代瀏覽器支持?!?
placeholder屬性是HTML5 中為input添加的。在input上提供一個占位符,文字形式展示輸入字段預(yù)期值的提示信息(hint),該字段會在輸入為空時顯示。
實例:

代碼如下:

<input type="text" name="userName" placeholder="請輸入用戶名">

placeholder操作起來非常方便,提高了開發(fā)效率,同時在高版本瀏覽器中用戶體驗也很好,所以本人很喜歡用這個屬性。
然而,在IE9以下版本瀏覽器就失效了,并且IE10+支持placeholder屬性,它的表現(xiàn)與其它瀏覽器也不一致
&bull;IE10+里鼠標(biāo)點擊時(獲取焦點)placeholder文本消失
&bull;Firefox/Chrome/Safari點擊不消失,而是鍵盤輸入時文本消失
那么作為一名開發(fā)人員,是否應(yīng)該去克服解決這個問題呢。目前網(wǎng)上也一堆類似解決方案,大致實現(xiàn)思路分為兩種:
1.(方式一)使用input的value作為顯示文本,模擬灰色樣式,focus讓$("[placeholder]").val()=="",blur時$("[placeholder]").val(this.defaultValue);
2.(方式二)不使用value,添加一個額外的標(biāo)簽(span)到body里然后絕對定位覆蓋到input上面。
在這里因第一種方式實現(xiàn)起來,占用了value且驗證時需要做額外的判斷,那么個人建議使用第二種方式。
首先,判斷當(dāng)前瀏覽器是否支持placeholder屬性:

代碼如下:

function placeholderSupport() { 
return 'placeholder' in document.createElement('input'); 
}

上關(guān)鍵代碼:

代碼如下:

/* 
*placeholder兼容ie9以下 author:高豐鳴 add 2016-1-27 
*/ 
$(function(){ 
if(!placeholderSupport()){ // 判斷瀏覽器是否支持 placeholder 
$(document).ready(function(){ 
//默認(rèn)遍歷循環(huán)添加placeholder 
$('[placeholder]').each(function(){ 
$(this).parent().append("<span class='placeholder'>"+$(this).attr('placeholder')+"</span>"); 
}) 
$('[placeholder]').blur(function(){ 
if($(this).val()!=""){ //如果當(dāng)前值不為空,隱藏placeholder 
$(this).parent().find('span.placeholder').hide(); 
} 
else{ 
$(this).parent().find('span.placeholder').show(); 
} 
}) 
}); 
} 
});

關(guān)于HTML5中Placeholder解決新標(biāo)簽低版本瀏覽器下不兼容的示例分析問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI