关于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 相关文章推荐
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
Dec 30 HTML / CSS
详解CSS3选择器:nth-child和:nth-of-type之间的差异
Sep 18 HTML / CSS
纯CSS3实现漂亮的input输入框动画样式库(Text input love)
Dec 29 HTML / CSS
浅谈HTML5 defer和async的区别
Jun 07 HTML / CSS
20佳惊艳的HTML5应用程序示例分享
May 03 HTML / CSS
会走动的图形html5时钟示例
Apr 27 HTML / CSS
html5中 media(播放器)的api使用指南
Dec 26 HTML / CSS
浅谈Html5中视频 音频标签 进度条的问题
Jul 26 HTML / CSS
html5中的一些标签学习(心得)
Oct 18 HTML / CSS
导出HTML5 Canvas图片并上传服务器功能
Aug 16 HTML / CSS
HTML5超文本标记语言的实现方法
Sep 24 HTML / CSS
CSS 一行代码实现头像与国旗的融合
Oct 24 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 远程关机操作的代码
2008/12/05 PHP
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
PHP静态成员变量和非静态成员变量详解
2017/02/14 PHP
javascript 实用的文字链提示框效果
2010/06/30 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
高亮显示web页表格行的javascript代码
2010/11/19 Javascript
批量实现面向对象的实例代码
2013/07/01 Javascript
如何学习Javascript入门指导
2013/11/01 Javascript
JavaScript生成随机字符串的方法
2015/03/19 Javascript
javascript学习总结之js使用技巧
2015/09/02 Javascript
BOM系列第一篇之定时器setTimeout和setInterval
2016/08/17 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
react 父组件与子组件之间的值传递的方法
2017/09/14 Javascript
NodeJs通过async/await处理异步的方法
2017/10/09 NodeJs
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
微信小程序顶部导航栏滑动tab效果
2019/01/28 Javascript
基于VUE的v-charts的曲线显示功能
2019/10/01 Javascript
js判断在哪个浏览器打开项目的方法
2020/01/21 Javascript
vue+element 实现商城主题开发的示例代码
2020/03/26 Javascript
python3写的简单本地文件上传服务器实例
2018/06/04 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
python 绘制场景热力图的示例
2020/09/23 Python
丝芙兰加拿大官方网站:SEPHORA加拿大
2018/11/20 全球购物
经济管理专业毕业生自荐信范文
2014/01/02 职场文书
好矿嫂事迹材料
2014/01/21 职场文书
小学学雷锋活动总结
2014/04/25 职场文书
医院保洁服务方案
2014/06/11 职场文书
公司优秀员工获奖感言
2014/08/14 职场文书
责任书范本大全
2015/05/11 职场文书
个人更名证明
2015/06/23 职场文书
2016三八妇女节校园广播稿
2015/12/17 职场文书
python 调用js的四种方式
2021/04/11 Python
基于JavaScript实现年月日三级联动
2021/06/22 Javascript
36个正则表达式(开发效率提高80%)
2021/11/17 Javascript
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS