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的Function详细
Nov 14 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
Apr 26 Javascript
使用jquery实现以post打开新窗口
Mar 19 Javascript
微信分享的标题、缩略图、连接及描述设置方法
Oct 14 Javascript
jQuery制作简洁的图片轮播效果
Apr 03 Javascript
javascript格式化日期时间方法汇总
Jun 19 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图的组合双轴图效果示例【附demo源码下载】
Mar 09 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
Dec 27 jQuery
JavaScript数组特性与实践应用深入详解
Dec 30 Javascript
vue.js iview打包上线后字体图标不显示解决办法
Jan 20 Javascript
使用vue cli4.x搭建vue项目的过程详解
May 08 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
Jul 27 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
Zend Framework实现自定义过滤器的方法
2016/12/09 PHP
javascript 面向对象思想 附源码
2009/07/07 Javascript
jqeury eval将字符串转换json的方法
2011/01/20 Javascript
JS中Iframe之间传值的方法
2013/03/11 Javascript
常用js字符串判断方法整理
2013/10/18 Javascript
JS图片切换的具体方法(带缩略图版)
2013/11/12 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
利用js编写响应式侧边栏
2016/09/17 Javascript
javascript实现右下角广告框效果
2017/02/01 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
Node.js创建HTTP文件服务器的使用示例
2018/05/11 Javascript
微信小程序实现循环动画效果
2018/07/16 Javascript
iView-admin 动态路由问题的解决方法
2018/10/03 Javascript
vue过滤器用法实例分析
2019/03/15 Javascript
微信小程序表单验证插件WxValidate的二次封装功能(终极版)
2019/09/03 Javascript
微信小程序如何获取用户头像和昵称
2019/09/23 Javascript
python BeautifulSoup使用方法详解
2013/11/21 Python
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
2015/05/20 Python
python通过cookie模拟已登录状态的初步研究
2016/11/09 Python
Python实现判断一个字符串是否包含子串的方法总结
2017/11/21 Python
python shell根据ip获取主机名代码示例
2017/11/25 Python
python运行时强制刷新缓冲区的方法
2019/01/14 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
python开发前景如何
2020/06/11 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
Python实现微信表情包炸群功能
2021/01/28 Python
HTML5实现一个能够移动的小坦克示例代码
2013/09/02 HTML / CSS
REISS美国官网:伦敦最受欢迎的时尚品牌
2019/08/16 全球购物
电工工作职责范本
2014/02/22 职场文书
高中生操行评语
2014/04/25 职场文书
财务工作犯错检讨书
2014/10/07 职场文书
企业党的群众路线教育实践活动学习心得体会
2014/10/31 职场文书
数学教师个人工作总结
2015/02/06 职场文书
高一化学教学反思
2016/02/22 职场文书
CSS3 制作的图片滚动效果
2021/04/14 HTML / CSS
为什么node.js不适合大型项目
2021/04/28 Javascript