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 相关文章推荐
ECMAScript 创建自己的js类库
Nov 22 Javascript
关于jquery input textare 事件绑定及用法学习
Apr 03 Javascript
js有序数组的连接问题
Oct 01 Javascript
原生JavaScript生成GUID的实现示例
Sep 05 Javascript
浅析Node.js 中 Stream API 的使用
Oct 23 Javascript
jQuery实现带玻璃流光质感的手风琴特效
Nov 20 Javascript
Bootstrap进度条组件知识详解
May 01 Javascript
jquery通过name属性取值的简单实现方法
Jun 20 Javascript
fullpage.js全屏滚动插件使用实例
Sep 06 Javascript
bootstrap实现图片自动轮播
Dec 21 Javascript
JS实现页面打印功能
Mar 16 Javascript
js实现动态增加文件域表单功能
Oct 22 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调用mysql存储过程
2007/02/14 PHP
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
浅析关于PHP位运算的简单权限设计
2013/06/30 PHP
php实现过滤UBB代码的类
2015/03/12 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
php写入txt乱码的解决方法
2019/09/17 PHP
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
js获取浏览器的可视区域尺寸的实现代码
2011/11/30 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
js仿百度有啊通栏展示效果实现代码
2013/05/28 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
jQuery 3.0 的 setter和getter 模式详解
2016/07/11 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
2018/04/24 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
详解一次Vue低版本安卓白屏问题的解决过程
2019/05/30 Javascript
json解析大全 双引号、键值对不在一起的情况
2019/12/06 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
Python小工具之消耗系统指定大小内存的方法
2018/12/03 Python
Python递归函数实例讲解
2019/02/27 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
Python线程障碍对象Barrier原理详解
2019/12/02 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
python获取百度热榜链接的实例方法
2020/08/25 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
python 获取谷歌浏览器保存的密码
2021/01/06 Python
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
HTML5资源预加载(Link prefetch)详细介绍(给你的网页加速)
2014/05/07 HTML / CSS
英国购买威士忌网站:Master of Malt
2019/09/26 全球购物
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
2014年计划生育协会工作总结
2014/11/14 职场文书
自我检讨书范文
2015/01/28 职场文书
消防验收申请报告
2015/05/15 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书