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 相关文章推荐
animate动画示例(泪奔的小孩)及stop和delay的使用
May 06 Javascript
JQuery处理json与ajax返回JSON实例代码
Jan 03 Javascript
JavaScript 模块化编程(笔记)
Apr 08 Javascript
js实现人才网站职位选择功能的方法
Aug 14 Javascript
快速掌握Node.js环境的安装与运行方法
Feb 16 Javascript
JS经典正则表达式笔试题汇总
Dec 15 Javascript
canvas绘制表盘时钟
Jan 23 Javascript
vue中监听返回键问题
Aug 28 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
Oct 30 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
Feb 19 Javascript
vue配置多代理服务接口地址操作
Sep 08 Javascript
js实现滚动条自动滚动
Dec 13 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设计模式之简单工厂模式详解
2014/09/04 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
jquery里的正则表达式说明
2011/08/03 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
在JS方法中返回多个值的方法汇总
2015/05/20 Javascript
javascript获取文档坐标和视口坐标
2015/05/26 Javascript
jQuery动态移除和添加背景图片的方法详解
2017/03/07 Javascript
原生js实现吸顶效果
2017/03/13 Javascript
JavaScript函数节流的两种写法
2017/04/07 Javascript
Express框架之connect-flash详解
2017/05/31 Javascript
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
Angular2之二级路由详解
2018/08/31 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
2018/09/19 Javascript
node.js的Express服务器基本使用教程
2019/01/09 Javascript
js控制随机数生成概率代码实例
2019/03/21 Javascript
vue学习笔记之过滤器的基本使用方法实例分析
2020/02/01 Javascript
[07:57]2018DOTA2国际邀请赛寻真——PSG.LGD凤凰浴火
2018/08/12 DOTA
Python中模块pymysql查询结果后如何获取字段列表
2017/06/05 Python
简单实现python进度条脚本
2017/12/18 Python
浅谈DataFrame和SparkSql取值误区
2018/06/09 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
2019/07/19 Python
利用python-pypcap抓取带VLAN标签的数据包方法
2019/07/23 Python
Python 中如何实现参数化测试的方法示例
2019/12/10 Python
购买大码女装:Lane Bryant
2016/09/07 全球购物
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
工商企业管理实习自我鉴定
2013/12/04 职场文书
《世界多美呀》教学反思
2014/03/02 职场文书
2015届本科毕业生自我鉴定
2014/09/27 职场文书
感谢信模板大全
2015/01/23 职场文书
老公保证书怎么写
2015/02/26 职场文书
阿里云服务器(windows)手动部署FTP站点详细教程
2022/08/05 Servers