关于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实现质感细腻丝滑按钮
Mar 09 HTML / CSS
纯DOM+CSS3实现简单的小风车动画
Sep 27 HTML / CSS
浅析几个CSS3常用功能的写法
Jun 05 HTML / CSS
一款纯css3实现的tab选项卡的实列教程
Dec 11 HTML / CSS
CSS+jQuery+PHP+MySQL实现的在线答题功能
Apr 25 HTML / CSS
CSS3制作彩色进度条样式的代码示例分享
Jun 23 HTML / CSS
用CSS3实现无限循环的无缝滚动的实例代码
Jul 04 HTML / CSS
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
Oct 15 HTML / CSS
HTML5之web workers_动力节点Java学院整理
Jul 17 HTML / CSS
html5教程实现Photoshop渐变色效果
Dec 04 HTML / CSS
html5+css3进度条倒计时动画特效代码【推荐】
Mar 08 HTML / CSS
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
Mar 31 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做推送服务端实现ios消息推送
2013/07/01 PHP
使用php+swoole对client数据实时更新(一)
2016/01/07 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
PHP实现的多维数组去重操作示例
2018/07/21 PHP
javascript编程起步(第一课)
2007/01/10 Javascript
javascript attachEvent绑定多个事件执行顺序问题
2010/10/20 Javascript
理清apply(),call()的区别和关系
2011/08/14 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
情人节专属 纯js脚本1k大小的3D玫瑰效果
2012/02/11 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
2014/10/14 Javascript
原生js实现日期联动
2015/01/12 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
2015/04/06 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
浅谈js构造函数的方法与原型prototype
2016/07/04 Javascript
AngularJS基础 ng-model 指令详解及示例代码
2016/08/02 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
微信小程序 MD5加密登录密码详解及实例代码
2017/01/12 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
canvas实现图像布局填充功能
2017/02/06 Javascript
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
python黑魔法之编码转换
2016/01/25 Python
Python网络编程中urllib2模块的用法总结
2016/07/12 Python
Python进阶之递归函数的用法及其示例
2018/01/31 Python
详解Python循环作用域与闭包
2019/03/21 Python
TensorFlow实现从txt文件读取数据
2020/02/05 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
利用scikitlearn画ROC曲线实例
2020/07/02 Python
python 将列表里的字典元素合并为一个字典实例
2020/09/01 Python
Python CategoricalDtype自定义排序实现原理解析
2020/09/11 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
新店开张活动方案
2014/08/24 职场文书
廉政教育的心得体会
2014/09/01 职场文书
房产遗嘱范本
2015/08/06 职场文书
升职自荐书
2019/05/09 职场文书
导游词之无锡梅园
2019/11/28 职场文书