首頁  >  文章  >  web前端  >  讓IE下支援Html5的placeholder屬性的外掛_html5教程技巧

讓IE下支援Html5的placeholder屬性的外掛_html5教程技巧

WBOY
WBOY原創
2016-05-16 15:47:211437瀏覽

HTML5對Web Form做了許多增強,例如input新增的type類型、Form Validation等。

Placeholder是HTML5新增的另一個屬性,當input或textarea設定了該屬性後,該值的內容將作為灰字提示顯示在文字方塊中,當文字方塊取得焦點時,提示文字消失。以前要實現這效果都是用JavaScript來控制才能實現, firefox、google chrome等表示對其支持, 唯獨IE存在違和感啊!

例如:

介紹一個超強的讓IE下支援placeholder的屬性外掛程式,同時也相容於其他不支援placeholder的瀏覽器,程式碼如下:

複製程式碼
程式碼如下:

$(document).ready(function() >var doc=document,
inputs=doc.getElementsByTagName('input'),
supportPlaceholder='placeholder'in doc.createElement('input'),
placeholder=function(input){ placeholder=function(input){
var text=input.getAttribute('placeholder'),
defaultValue=input.defaultValue;
if(defaultValue==''){
input.value=text
}
input .onfocus=function(){
if(input.value===text)
{
this.value=''
}
};
input.onblur=function (){
if(input.value===''){
this.value=text
}
}
};
if(!supportPlaceholder){
for(var i=0,len=inputs.length;ivar input=inputs[i],
text=input.getAttribute('placeholder');
if (input.type==='text'&&text){
placeholder(input)
}
}
}
});

直接把程式碼複製下來,保存成一個js檔案引用即可,不用再做任何處理,超級便利!

ex : 這樣做的確能讓IE的Input顯示placeholder屬性,但是如果頁面上只有一個input還好,如果是多個input,如果出現input沒有填入任何值的話,那麼它的空input會自動將placeholder的值填進value裡面,從而發生錯誤.例如:

複製代碼
代碼如下:




解決方法就是在後台自己判斷啦, 也許能在上面的js檔案裡解決, 以後再研究啦~!
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn