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 相关文章推荐
window.onload 加载完毕的问题及解决方案(下)
Jul 09 Javascript
JS setCapture 区域外事件捕捉
Mar 18 Javascript
JS 有名函数表达式全面解析
Mar 19 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
Jan 15 Javascript
setInterval计时器不准的问题解决方法
May 08 Javascript
Javascript基础知识盲点总结之函数
May 15 Javascript
jQuery实现摸拟alert提示框
May 22 Javascript
JS修改地址栏参数实例代码
Jun 14 Javascript
纯JS实现简单的日历
Jun 26 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
Aug 08 Javascript
Javascript中window.name属性详解
Nov 19 Javascript
用JS创建一个录屏功能
Nov 11 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生成excel文件的简单方法
2014/02/08 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
JavaScript 事件记录使用说明
2009/10/20 Javascript
jquery 图片上传按比例预览插件集合
2011/05/28 Javascript
js简单实现删除记录时的提示效果
2013/12/05 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
JavaScript的代码编写格式规范指南
2015/12/07 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
Bootstrap基本样式学习笔记之标签(5)
2016/12/07 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
轻松理解JavaScript闭包
2017/03/14 Javascript
js实现移动端编辑添加地址【模仿京东】
2017/04/28 Javascript
详解vue mixins和extends的巧妙用法
2017/12/20 Javascript
基于jquery实现九宫格拼图小游戏
2018/11/30 jQuery
JavaScript实现美化滑块效果
2019/05/17 Javascript
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
JavaScript装饰者模式原理与用法实例详解
2020/03/09 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
Python运行报错UnicodeDecodeError的解决方法
2016/06/07 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
python远程邮件控制电脑升级版
2019/05/23 Python
PyQt5下拉式复选框QComboCheckBox的实例
2019/06/25 Python
感知器基础原理及python实现过程详解
2019/09/30 Python
解决jupyter notebook 前面书写后面内容消失的问题
2020/04/13 Python
amazeui模态框弹出后立马消失并刷新页面
2020/08/19 HTML / CSS
Under Armour澳大利亚官网:美国知名的高端功能性运动品牌
2018/02/22 全球购物
车贷收入证明范本
2014/01/09 职场文书
学生个人自我鉴定范文
2014/03/28 职场文书
2014年煤矿安全工作总结
2014/12/04 职场文书
求职自我评价范文
2015/03/09 职场文书
基于python定位棋子位置及识别棋子颜色
2021/07/26 Python
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers