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 相关文章推荐
XMLHTTP 乱码的解决方法(UTF8,GB2312 编码 解码)
Jan 12 Javascript
AngularJS 实现按需异步加载实例代码
Oct 18 Javascript
jQuery通过写入cookie实现更换网页背景的方法
Apr 15 Javascript
功能强大的Bootstrap效果展示(二)
Aug 03 Javascript
JavaScript蒙板(model)功能的简单实现代码
Aug 04 Javascript
JS实现搜索框文字可删除功能
Dec 28 Javascript
详解JavaScript对象的深浅复制
Mar 30 Javascript
angular2中使用第三方js库的实例
Feb 26 Javascript
Vue.js组件高级特性实例详解
Dec 24 Javascript
为nuxt项目写一个面包屑cli工具实现自动生成页面与面包屑配置
Sep 29 Javascript
javascript实现点击星星小游戏
Dec 24 Javascript
Node.js设置定时任务之node-schedule模块的使用详解
Apr 28 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与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
php 计划任务 检测用户连接状态
2012/03/29 PHP
destoon实现VIP排名一直在前面排序的方法
2014/08/21 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
手把手教你自己写一个js表单验证框架的方法
2010/09/14 Javascript
JS关闭窗口时产生的事件及用法示例
2016/08/20 Javascript
深入理解Angular中的依赖注入
2017/06/26 Javascript
js实时监控文本框输入字数的实例代码
2018/01/18 Javascript
使用vue2.0创建的项目的步骤方法
2018/09/25 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
2020/10/22 Javascript
python解决字典中的值是列表问题的方法
2013/03/04 Python
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
在PyCharm导航区中打开多个Project的关闭方法
2019/01/17 Python
Python的条件表达式和lambda表达式实例
2019/01/31 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
pytorch实现Tensor变量之间的转换
2020/02/17 Python
win10下opencv-python特定版本手动安装与pip自动安装教程
2020/03/05 Python
CSS3中的注音对齐属性ruby-align用法指南
2016/07/01 HTML / CSS
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
测绘工程个人的自我评价
2013/11/10 职场文书
商务主管岗位职责
2013/12/08 职场文书
安全生产检查通报
2014/01/29 职场文书
艺术学院毕业生自我评价
2014/03/02 职场文书
妇女干部培训方案
2014/05/12 职场文书
数控专业毕业生求职信
2014/06/12 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
资金申请报告范文
2015/05/14 职场文书
公司职员入党自传书
2015/06/26 职场文书
Python使用scapy模块发包收包
2021/05/07 Python
「我的青春恋爱物语果然有问题。-妄言录-」第20卷封面公开
2022/03/21 日漫