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 new后的constructor属性
Aug 05 Javascript
超详细的javascript数组方法汇总
Nov 21 Javascript
Google 地图叠加层实例讲解
Aug 06 Javascript
微信小程序 wx.request(object) API详解及实例代码
Sep 30 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
Nov 04 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
Dec 14 Javascript
Vue.js事件处理器与表单控件绑定详解
Mar 20 Javascript
利用Node.js检测端口是否被占用的方法
Dec 07 Javascript
微信小程序数据分析之自定义分析的实现
Aug 17 Javascript
深入解析ES6中的promise
Nov 08 Javascript
JavaScript闭包与作用域链实例分析
Jan 21 Javascript
详解React中共享组件逻辑的三种方式
Feb 02 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 excel类 phpExcel使用方法介绍
2010/08/21 PHP
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
解析如何用php screw加密php源代码
2013/06/20 PHP
PHP中unset,array_splice删除数组中元素的区别
2014/07/28 PHP
php魔术函数__call()用法实例分析
2015/02/13 PHP
javascript与CSS复习(三)
2010/06/29 Javascript
ASP.NET jQuery 实例17 通过使用jQuery validation插件校验ListBox
2012/02/03 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
2012/07/23 Javascript
JS实现程序暂停与继续功能代码解读
2013/10/10 Javascript
JavaScript实现的石头剪刀布游戏源码分享
2014/08/22 Javascript
深入探讨JavaScript String对象
2015/03/09 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
Bootstrap三种表单布局的使用方法
2016/06/21 Javascript
将input框中输入内容显示在相应的div中【三种方法可选】
2017/05/08 Javascript
JavaScript之生成器_动力节点Java学院整理
2017/06/30 Javascript
jQuery实现form表单序列化转换为json对象功能示例
2018/05/23 jQuery
Python装饰器使用你可能不知道的几种姿势
2019/10/25 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
详解Pycharm出现out of memory的终极解决方法
2020/03/03 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
2020/07/20 Python
pycharm专业版远程登录服务器的详细教程
2020/09/15 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
Strawberrynet草莓网新加坡站:护肤、彩妆、香水及美发产品
2018/08/31 全球购物
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
海量信息软件测试笔试题
2015/08/08 面试题
大学生学业生涯规划
2014/01/05 职场文书
校运会广播稿100字
2014/01/27 职场文书
2014领导班子四风问题对照检查材料思想汇报
2014/09/21 职场文书
2015新员工试用期工作总结
2014/12/12 职场文书
招标保密承诺书
2015/01/20 职场文书
爱国主义影片观后感
2015/06/18 职场文书
2017元旦晚会开幕词
2016/03/03 职场文书
JS异步堆栈追踪之为什么await胜过Promise
2021/04/28 Javascript
mysql如何查询连续记录
2022/05/11 MySQL