关于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动画技术
Jan 01 HTML / CSS
CSS3实现DIV圆角效果完整代码
Oct 10 HTML / CSS
html5开发之viewport使用
Oct 17 HTML / CSS
HTML5调用手机摄像头拍照的实现思路及代码
Jun 15 HTML / CSS
实例讲解HTML5的meta标签的一些应用
Dec 08 HTML / CSS
详解HTML5 window.postMessage与跨域
May 11 HTML / CSS
html5中audio支持音频格式的解决方法
Aug 24 HTML / CSS
html5手机键盘弹出收起的处理
Jan 20 HTML / CSS
Html5定位终极解决方案
Feb 05 HTML / CSS
html2canvas生成的图片偏移不完整的解决方法
May 19 HTML / CSS
bootstrapv4轮播图去除两侧阴影及线框的方法
Feb 15 HTML / CSS
使用CSS实现按钮边缘跑马灯动画
May 07 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 array_multisort函数 对数据库结果进行复杂排序
2013/06/08 PHP
深入Nginx + PHP 缓存详解
2013/07/11 PHP
PHP保存带BOM文件的方法
2015/02/12 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
实现PHP搜索加分页
2016/10/12 PHP
php array_pop 删除数组最后一个元素实例
2016/11/02 PHP
PHP实现的随机红包算法示例
2017/08/14 PHP
用jQuery简化JavaScript开发分析
2009/02/19 Javascript
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
JS 获取select(多选下拉)中所选值的示例代码
2013/08/02 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
Javascript中this的用法详解
2014/09/22 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
DOM节点深度克隆函数cloneNode()用法实例
2015/01/12 Javascript
JavaScript转换与解析JSON方法实例详解
2015/11/24 Javascript
JavaScript ParseFloat()方法
2015/12/18 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
基于jquery实现智能表单验证操作
2016/05/09 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
javaScript手机号码校验工具类PhoneUtils详解
2017/12/08 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
Python中的一些陷阱与技巧小结
2015/07/10 Python
Python IDLE清空窗口的实例
2018/06/25 Python
浅谈Python traceback的优雅处理
2018/08/31 Python
Python获取Redis所有Key以及内容的方法
2019/02/19 Python
Python实现账号密码输错三次即锁定功能简单示例
2019/03/29 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
Python3 字典dictionary入门基础附实例
2020/02/10 Python
CSS3 创建网页动画实现弹跳球动效果
2018/10/30 HTML / CSS
美国指甲油品牌:Deco Miami
2017/01/30 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
应届毕业生专业个人求职自荐信格式
2013/11/20 职场文书
《挑山工》的教学反思
2014/02/16 职场文书
初中班主任工作随笔
2015/08/15 职场文书
详解SQL的窗口函数
2022/04/21 Oracle