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 相关文章推荐
ajax 文件上传应用简单实现
Mar 03 Javascript
JavaScript创建对象的写法
Aug 29 Javascript
jquery 缓存问题的几个解决方法
Nov 11 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
May 14 Javascript
node.js中的fs.open方法使用说明
Dec 17 Javascript
vue从使用到源码实现教程详解
Sep 19 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
Apr 13 jQuery
JS监听滚动和id自动定位滚动
Dec 18 Javascript
浅谈Fetch 数据交互方式
Dec 20 Javascript
浅析vue中的MVVM实现原理
Mar 04 Javascript
vue 解决文本框被键盘遮住的问题
Nov 06 Javascript
详解node.js 事件循环
Jul 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获取用户的浏览器与操作系统信息的代码
2012/09/04 PHP
php检查日期函数checkdate用法实例
2015/03/19 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
火狐textarea输入法的bug的触发及解决
2013/07/24 Javascript
jQuery打印图片pdf、txt示例代码
2014/07/22 Javascript
jquery中post方法用法实例
2014/10/21 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
2015/08/17 Javascript
JQuery导航菜单选择特效
2016/04/11 Javascript
AngularJs concepts详解及示例代码
2016/09/01 Javascript
Angular中点击li标签实现更改颜色的核心代码
2017/12/08 Javascript
node.js学习笔记之koa框架和简单爬虫练习
2018/12/13 Javascript
微信小程序封装自定义弹窗的实现代码
2019/05/08 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
JS自定义对象创建与简单使用方法示例
2020/01/15 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
Python的Django框架中的数据库配置指南
2015/07/17 Python
使用tensorflow实现AlexNet
2017/11/20 Python
python使用pandas实现数据分割实例代码
2018/01/25 Python
解决Python对齐文本字符串问题
2019/08/28 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
2013/01/06 HTML / CSS
html5的pushstate以及监听浏览器返回事件的实现
2020/08/11 HTML / CSS
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
波兰最大的宠物用品网上商店:FERA.PL
2019/08/11 全球购物
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
介绍一下EJB的体系结构
2012/08/01 面试题
班班通项目实施方案
2014/02/25 职场文书
社区食品安全实施方案
2014/03/28 职场文书
吨的认识教学反思
2014/04/27 职场文书
淘宝客服工作职责
2014/07/11 职场文书
党的群众路线教育实践活动个人对照检查材料
2014/09/22 职场文书
排球赛新闻稿
2015/07/17 职场文书
生产实习心得体会范文
2016/01/22 职场文书
情侣餐厅的创业计划书范本!
2019/07/26 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP