Html5的placeholder屬性(IE相容)實現代碼,html5placeholder

來源:互聯網
上載者:User

Html5的placeholder屬性(IE相容)實現代碼,html5placeholder

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

Placeholder是HTML5新增的另一個屬性,當input或者textarea設定了該屬性後,該值的內容將作為灰字提示顯示在文字框中,當文字框獲得焦點時,提示文字消失。以前要實現這效果都是用JavaScript來控制才能實現 , 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)   }  } } });

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

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

<input type="text" placeholder="輸入商品編碼" name="goodscode" id="goodscode" value="123" /><input type="text" placeholder="輸入商品名稱" name="goodsname" id="goodsname" value="輸入商品名稱" />

解決辦法就是在後台自己判斷啦 , 也許能在上面的js檔案裡解決 , 以後再研究啦~!


html的文本的預設值怎實現,類似android的hint效果,不要用javascript,我記得input有那種屬性

具體屬性名稱是placeholder,這個屬於html5的新屬性,這個需要瀏覽器支援該屬性才可以,比如ie9之下的瀏覽器即是設定了該屬性,也不會有效果。

參見 www.w3school.com.cn/html5/tag_input.asp
www.w3school.com.cn/...er.asp
 
IE8、IE9使用clone方法時,不可以將html5使用的placeholder屬性值清空問題

豐塔納提高和規範好吧
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.