Html5的placeholder属性(IE兼容)实现代码


Posted in Javascript onAugust 30, 2014

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文件里解决 , 以后再研究啦~!

Javascript 相关文章推荐
广告代码静态化js通用函数
May 09 Javascript
javascript解决innerText浏览器兼容问题思路代码
May 17 Javascript
js实现动态改变字体大小代码
Jan 02 Javascript
使用js判断控件是否获得焦点
Jan 03 Javascript
javascript使用smipleChart实现简单图表
Jan 02 Javascript
尝试动手制作javascript放大镜效果
Dec 25 Javascript
浅谈js中StringBuffer类的实现方法及使用
Sep 02 Javascript
Vue.js实现简单动态数据处理
Feb 13 Javascript
快速搭建React的环境步骤详解
Nov 06 Javascript
原生JS实现随机点名项目的实例代码
Apr 30 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
May 16 Javascript
js实现弹框效果
Mar 24 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
Aug 30 #Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
Aug 30 #Javascript
原生js实现复制对象、扩展对象 类似jquery中的extend()方法
Aug 30 #Javascript
ZeroClipboard插件实现多浏览器复制功能(支持firefox、chrome、ie6)
Aug 30 #Javascript
仿百度联盟对联广告实现代码
Aug 30 #Javascript
jQuery针对各类元素操作基础教程
Aug 29 #Javascript
jQuery事件用法实例汇总
Aug 29 #Javascript
You might like
php通用防注入程序 推荐
2011/02/26 PHP
php通过session防url攻击方法
2014/12/10 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
php实现的XML操作(读取)封装类完整实例
2017/02/23 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
webpack+vue.js快速入门教程
2016/10/12 Javascript
angular双向绑定模拟探索
2016/12/26 Javascript
Vue数据驱动模拟实现2
2017/01/11 Javascript
微信小程序开发经验总结(推荐)
2017/01/11 Javascript
Vue自定义事件(详解)
2017/08/19 Javascript
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
angularjs 缓存的使用详解
2018/03/19 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
小程序实现层叠卡片滑动效果
2019/08/26 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
原生js实现弹窗消息动画
2020/11/20 Javascript
一个小示例告诉你Python语言的优雅之处
2014/07/04 Python
wxPython中listbox用法实例详解
2015/06/01 Python
网站渗透常用Python小脚本查询同ip网站
2017/05/08 Python
Python模拟自动存取款机的查询、存取款、修改密码等操作
2018/09/02 Python
Python对象转换为json的方法步骤
2019/04/25 Python
PyQt5 如何让界面和逻辑分离的方法
2020/03/24 Python
Python容器类型公共方法总结
2020/08/19 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
结构和类有什么异同
2012/07/16 面试题
大学考试作弊检讨书
2014/01/30 职场文书
失职检讨书大全
2015/01/26 职场文书
小班上学期个人总结
2015/02/12 职场文书
python使用BeautifulSoup 解析HTML
2022/04/24 Python
解决Git推送错误non-fast-forward的方法
2022/06/25 Servers