关于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 相关文章推荐
HTML+CSS3 模仿Windows7 桌面效果
Jun 17 HTML / CSS
8款精美的CSS3表单设计(登录表单/下拉选择/按钮附演示及源码)
Feb 04 HTML / CSS
CSS3实现超慢速移动动画效果非常流畅无卡顿
Jun 15 HTML / CSS
html5+css3之CSS中的布局与Header的实现
Nov 21 HTML / CSS
五款漂亮的纯CSS3动画按钮的实例教程
Nov 21 HTML / CSS
利用纯css3实现的文字亮光特效的代码演示
Nov 27 HTML / CSS
网页中的电话号码如何实现一键直呼效果_附示例
Mar 15 HTML / CSS
html5 拖拽上传图片实例演示
Apr 01 HTML / CSS
HTML5制作3D爱心动画教程 献给女友浪漫的礼物
Nov 05 HTML / CSS
高清屏中使用Canvas绘图出现模糊的问题及解决方法
Jun 03 HTML / CSS
前端实现打印图像功能
Aug 27 HTML / CSS
CSS的calc函数用法小结
Jun 25 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页面消耗内存过大的处理办法
2013/03/18 PHP
phpStorm+XDebug+chrome 配置详解
2019/04/01 PHP
js 浮动层菜单收藏
2009/01/16 Javascript
锋利的jQuery 要点归纳(一) jQuery选择器
2010/03/21 Javascript
jQuery 表单验证扩展代码(二)
2010/10/20 Javascript
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
javascript中html字符串转化为jquery dom对象的方法
2015/08/27 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
基于node实现websocket协议
2016/04/25 Javascript
setTimeout学习小结
2017/02/08 Javascript
通过一次报错详细谈谈Point事件
2018/05/17 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
vue表单自定义校验规则介绍
2018/08/28 Javascript
浅析js中mvvm模式实现的原理
2018/10/06 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
2019/02/19 jQuery
nodejs使用node-xlsx生成excel的方法示例
2019/08/22 NodeJs
Vuex的热更替如何实现
2020/06/05 Javascript
爬山算法简介和Python实现实例
2014/04/26 Python
对python判断ip是否可达的实例详解
2019/01/31 Python
Python常见数字运算操作实例小结
2019/03/22 Python
Pytorch实现基于CharRNN的文本分类与生成示例
2020/01/08 Python
Python networkx包的实现
2020/02/14 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
python-地图可视化组件folium的操作
2020/12/14 Python
详解如何使用Pytest进行自动化测试
2021/01/14 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
canvas绘制表情包的示例代码
2018/07/09 HTML / CSS
Mamaearth官方网站:印度母婴护理产品公司
2019/10/06 全球购物
"序列点" 是什么
2016/07/29 面试题
电子装配专业毕业生求职信
2014/04/23 职场文书
2014年重阳节敬老活动方案
2014/09/16 职场文书
2015年教师教学工作总结
2015/04/28 职场文书
个人承诺书格式范文
2015/04/29 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书
Django显示可视化图表的实践
2021/05/10 Python
Mybatis-plus在项目中的简单应用
2021/07/01 Java/Android