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 相关文章推荐
由JavaScript技术实现的web小游戏(不含网游)
Jun 12 Javascript
js中的push和join方法使用介绍
Oct 08 Javascript
JQuery实现绚丽的横向下拉菜单
Dec 19 Javascript
js获取上传文件大小示例代码
Apr 10 Javascript
jQuery实现类似标签风格的导航菜单效果代码
Aug 25 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
Aug 17 Javascript
jquery拼接ajax 的json和字符串拼接的方法
Mar 11 Javascript
JavaScript中双符号的运算详解
Mar 12 Javascript
JS+html5制作简单音乐播放器
Sep 13 Javascript
Node.js成为Web应用开发最佳选择的原因
Feb 05 Javascript
使用vue的transition完成滑动过渡的示例代码
Jun 25 Javascript
npm scripts 使用指南详解
Oct 08 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
DC动漫人物排行
2020/03/03 欧美动漫
打造计数器DIY三步曲(中)
2006/10/09 PHP
PHP版自动生成文章摘要
2008/07/23 PHP
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
2011/05/18 PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
2012/03/26 PHP
基于PHP服务端图片生成缩略图的方法详解
2013/06/20 PHP
PHP获取HTTP body内容的方法
2018/12/31 PHP
PHP中非常有用却鲜有人知的函数集锦
2019/08/17 PHP
javascript instanceof,typeof的区别
2010/03/24 Javascript
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
jquery异步请求实例代码
2011/06/21 Javascript
js内存泄露的几种情况详细探讨
2013/05/31 Javascript
js的Boolean对象初始值示例
2014/03/04 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
AngularJs 60分钟入门基础教程
2016/04/03 Javascript
AngularJS中的Promise详细介绍及实例代码
2016/12/13 Javascript
three.js绘制地球、飞机与轨迹的效果示例
2017/02/28 Javascript
Bootstrap导航中表单简单实现代码
2017/03/06 Javascript
JavaScript中使用参数个数实现重载功能
2017/09/01 Javascript
axios如何利用promise无痛刷新token的实现方法
2019/08/27 Javascript
python远程登录代码
2008/04/29 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
python 获取指定文件夹下所有文件名称并写入列表的实例
2018/04/23 Python
详解Python中pandas的安装操作说明(傻瓜版)
2019/04/08 Python
CSS3实现的炫酷菜单代码分享
2015/03/12 HTML / CSS
原生 JS+CSS+HTML 实现时序图的方法
2019/07/31 HTML / CSS
澳洲女装时尚在线:Blue Bungalow
2018/05/05 全球购物
英国假睫毛购买网站:FalseEyelashes.co.uk
2018/05/23 全球购物
德国电子产品购物网站:TechInTheBasket德国
2018/12/07 全球购物
Sunglass Hut巴西网上商店:男女太阳镜
2020/10/04 全球购物
研究生求职自荐书
2014/06/23 职场文书
三月学雷锋活动总结
2014/06/26 职场文书
群众路线教育实践活动整改落实情况汇报
2014/10/28 职场文书
2014年医院后勤工作总结
2014/12/06 职场文书