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 面向对象 重载
May 13 Javascript
让alert不出现弹窗的两种方法
May 18 Javascript
js中iframe调用父页面的方法
Oct 30 Javascript
IE6浏览器中window.location.href无效的解决方法
Nov 20 Javascript
浅析javascript操作 cookie对象
Dec 26 Javascript
javascript中的Base64、UTF8编码与解码详解
Mar 18 Javascript
在Ubuntu系统上安装Ghost博客平台的教程
Jun 17 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
Feb 16 Javascript
怎样判断jQuery当前元素是隐藏还是显示
Nov 23 Javascript
轻松实现jQuery添加删除按钮Click事件
Mar 13 Javascript
学习jQuery中的noConflict()用法
Sep 28 jQuery
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
Apr 24 Vue.js
通过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中http_build_query 的一个问题
2012/03/25 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
2014/10/31 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
2016/10/29 PHP
PHP使用gearman进行异步的邮件或短信发送操作详解
2020/02/27 PHP
Jquery 基础学习笔记
2009/05/29 Javascript
在javaScript中关于submit和button的区别介绍
2013/10/20 Javascript
javascript动态判断html元素并执行不同的操作
2014/06/16 Javascript
JavaScript中原型和原型链详解
2015/02/11 Javascript
每天一篇javascript学习小结(Boolean对象)
2015/11/12 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
类似于QQ的右滑删除效果的实现方法
2016/10/16 Javascript
JS重载实现方法分析
2016/12/16 Javascript
一个例子轻松学会Vue.js
2017/01/02 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
详解ES6通过WeakMap解决内存泄漏问题
2018/03/09 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
node使用request请求的方法
2019/12/20 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
[01:42]辉夜杯战队访谈宣传片—FANTUAN
2015/12/25 DOTA
Python字符串中查找子串小技巧
2015/04/10 Python
使用Python的内建模块collections的教程
2015/04/28 Python
python实现C4.5决策树算法
2018/08/29 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
英国领先的体验日提供商:Buyagift
2019/04/19 全球购物
JRE、JDK、JVM之间的关系怎样
2012/05/16 面试题
实习销售业务员自我鉴定
2013/09/21 职场文书
公司财务流程之主管工作流程
2014/03/03 职场文书
党员干部承诺书
2014/03/25 职场文书
企业授权委托书范本
2014/04/02 职场文书
班级心理活动总结
2014/07/04 职场文书
反腐倡廉警示教育活动心得体会
2014/09/04 职场文书
单位单身证明样本
2014/10/11 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
MySQL系列之十五 MySQL常用配置和性能压力测试
2021/07/02 MySQL
服务器间如何实现文件共享
2022/05/20 Servers