关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法


Posted in HTML / CSS onJanuary 27, 2016

placeholder 属性是 HTML5 中的新属性,俗名叫“占位符”,功能类似于输入框在得到焦点时,时面的默认值会变成空白,当失去焦点时又会显示默认的文本,我想大家一定使用 js/jquery制作过这样的效果。目前只有在Mozilla Firefox 3.7+、Apple Safari 4+、Google Chrome 4+、Opera11+等现代浏览器支持。”
placeholder属性是HTML5 中为input添加的。在input上提供一个占位符,文字形式展示输入字段预期值的提示信息(hint),该字段会在输入为空时显示。
实例:

复制代码
代码如下:

<input type="text" name="userName" placeholder="请输入用户名">

placeholder操作起来非常方便,提高了开发效率,同时在高版本浏览器中用户体验也很好,所以本人很喜欢用这个属性。
然而,在IE9以下版本浏览器就失效了,并且IE10+支持placeholder属性,它的表现与其它浏览器也不一致
•IE10+里鼠标点击时(获取焦点)placeholder文本消失
•Firefox/Chrome/Safari点击不消失,而是键盘输入时文本消失
那么作为一名开发人员,是否应该去克服解决这个问题呢。目前网上也一堆类似解决方案,大致实现思路分为两种:
1.(方式一)使用input的value作为显示文本,模拟灰色样式,focus让$("[placeholder]").val()=="",blur时$("[placeholder]").val(this.defaultValue);
2.(方式二)不使用value,添加一个额外的标签(span)到body里然后绝对定位覆盖到input上面。
在这里因第一种方式实现起来,占用了value且验证时需要做额外的判断,那么个人建议使用第二种方式。
首先,判断当前浏览器是否支持placeholder属性:

复制代码
代码如下:

function placeholderSupport() {
return 'placeholder' in document.createElement('input');
}

上关键代码:

复制代码
代码如下:

/*
*placeholder兼容ie9以下 author:高丰鸣 add 2016-1-27
*/
$(function(){
if(!placeholderSupport()){ // 判断浏览器是否支持 placeholder
$(document).ready(function(){
//默认遍历循环添加placeholder
$('[placeholder]').each(function(){
$(this).parent().append("<span class='placeholder'>"+$(this).attr('placeholder')+"</span>");
})
$('[placeholder]').blur(function(){
if($(this).val()!=""){ //如果当前值不为空,隐藏placeholder
$(this).parent().find('span.placeholder').hide();
}
else{
$(this).parent().find('span.placeholder').show();
}
})
});
}
});

以上内容给大家介绍了关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法 的相关内容,希望对大家有所帮助。

HTML / CSS 相关文章推荐
纯CSS3实现的8种Loading动画效果
Jul 05 HTML / CSS
实例教程 纯CSS3打造非常炫的加载动画效果
Nov 05 HTML / CSS
用CSS3写的模仿iPhone中的返回按钮
Apr 04 HTML / CSS
CSS3解析抖音LOGO制作的方法步骤
Apr 11 HTML / CSS
css3动画 小球滚动 js控制动画暂停
Nov 29 HTML / CSS
CSS 3.0 结合video视频实现的创意开幕效果
Jun 01 HTML / CSS
简单html5代码获取地理位置
Mar 31 HTML / CSS
HTML5通用接口详解
Jun 12 HTML / CSS
HTML5+CSS3模仿优酷视频截图功能示例
Jan 05 HTML / CSS
HTML5新标签兼容——&gt; 的两种方法
Sep 12 HTML / CSS
canvas 基础之图像处理的使用
Apr 10 HTML / CSS
css height属性中的calc方法详解
Jun 03 HTML / CSS
HTML5手机端弹出遮罩菜单特效代码
Jan 27 #HTML / CSS
HTML5实现简单图片上传所遇到的问题及解决办法
Jan 20 #HTML / CSS
Html5实现二维码扫描并解析
Jan 20 #HTML / CSS
图片上传插件ImgUploadJS:用HTML5 File API 实现截图粘贴上传、拖拽上传
Jan 20 #HTML / CSS
HTML5 History API 实现无刷新跳转
Jan 11 #HTML / CSS
基于HTML5新特性Mutation Observer实现编辑器的撤销和回退操作
Jan 11 #HTML / CSS
Html5插件教程之添加浏览器放大镜效果的商品橱窗
Jan 07 #HTML / CSS
You might like
php 正则表达式小结
2009/08/31 PHP
php中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
WordPress中用于获取文章信息以及分类链接的函数用法
2015/12/18 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
KindEditor在php环境下上传图片功能集成的方法示例
2020/07/20 PHP
javascript中的变量是传值还是传址的?
2010/04/19 Javascript
一个报数游戏js版(约瑟夫环问题)
2010/08/05 Javascript
JQuery实现简单时尚快捷的气泡提示插件
2012/12/20 Javascript
浅析hasOwnProperty方法的应用
2013/11/20 Javascript
Ajax局部更新导致JS事件重复触发问题的解决方法
2014/10/14 Javascript
用队列模拟jquery的动画算法实例
2015/01/20 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
浅谈js中的变量名和函数名重名
2017/02/13 Javascript
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
JS无限级导航菜单实现方法
2019/01/05 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
[45:25]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
python中sleep函数用法实例分析
2015/04/29 Python
Python之变量类型和if判断方式
2020/05/05 Python
python中如何打包用户自定义模块
2020/09/23 Python
Python实现LR1文法的完整实例代码
2020/10/25 Python
python excel多行合并的方法
2020/12/09 Python
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
加拿大女鞋品牌:ALDO
2016/11/13 全球购物
美国最顶级的精品店之一:Hampden Clothing
2016/12/22 全球购物
PHP笔试题
2012/02/22 面试题
《油菜花开了》教学反思
2014/02/22 职场文书
一年级评语大全
2014/04/23 职场文书
公民代理授权委托书
2014/09/24 职场文书
2015年禁毒宣传活动总结
2015/03/25 职场文书
2015年房产销售工作总结范文
2015/05/22 职场文书
七夕情人节问候语
2015/11/11 职场文书
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers