讓IE下支持Html5的placeholder屬性的插件

字號:


    HTML5對Web Form做了許多增強,比如input新增的type類型、Form Validation等。
    Placeholder是HTML5新增的另一個屬性,當(dāng)input或者textarea設(shè)置了該屬性后,該值的內(nèi)容將作為灰字提示顯示在文本框中,當(dāng)文本框獲得焦點時,提示文字消失。以前要實現(xiàn)這效果都是用JavaScript來控制才能實現(xiàn) , firefox、google chrome等表示對其支持 , 唯獨IE存在違和感啊!
    例如: <input id="t1" type="text" placeholder="請輸入文字" />
    介紹一個超強的讓IE下支持placeholder的屬性插件,同時也兼容其他不支持placeholder的瀏覽器,代碼如下:
    代碼如下:
    $(document).ready(function(){
    var doc=document,
    inputs=doc.getElementsByTagName('input'),
    supportPlaceholder='placeholder'in doc.createElement('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;i<len;i++){
    var input=inputs[i],
    text=input.getAttribute('placeholder');
    if(input.type==='text'&&text){
    placeholder(input)
    }
    }
    }
    });
    直接把代碼復(fù)制下來,保存成一個js文件引用即可,不用再做任何處理,超級便利!
    ex : 這樣做的確能讓IE的Input顯示placeholder屬性,但是如果頁面上只有一個input還好,如果是多個input,如果出現(xiàn)input沒有填入任何值的話,那么它的空input會自動將placeholder的值填進(jìn)value里面,從而發(fā)生錯誤.例如:
    代碼如下:
    <input type="text" placeholder="輸入商品編碼" name="goodscode" id="goodscode" value="123" />
    <input type="text" placeholder="輸入商品名稱" name="goodsname" id="goodsname" value="輸入商品名稱" />
    解決辦法就是在后臺自己判斷啦 , 也許能在上面的js文件里解決 , 以后再研究啦~!