关于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实现针线缝合效果(图解步骤)
Feb 04 HTML / CSS
CSS3 绘制BMW logo实的现代码
Apr 25 HTML / CSS
利用css3实现的简单的鼠标悬停按钮
Nov 04 HTML / CSS
html5本地存储_动力节点Java学院整理
Jul 12 HTML / CSS
html5中监听canvas内部元素点击事件的三种方法
Apr 28 HTML / CSS
开发人员所需要知道的HTML5性能分析面面观
Jul 05 HTML / CSS
免费获得微软MCSD证书赶快行动吧!
Nov 13 HTML / CSS
html5 video标签屏蔽右键视频另存为的js代码
Nov 12 HTML / CSS
深入浅析HTML5中的article和section的区别
May 15 HTML / CSS
Canvas实现贝赛尔曲线轨迹动画的示例代码
Apr 25 HTML / CSS
canvas实现滑动验证的实现示例
Aug 11 HTML / CSS
关于flex 上下文中自动 margin的问题(完整例子)
May 20 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
构建简单的Webmail系统
2006/10/09 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
2014 年最热门的21款JavaScript框架推荐
2014/12/25 Javascript
js实现右下角提示框的方法
2015/02/03 Javascript
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
JQuery fileupload插件实现文件上传功能
2016/03/18 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
webpack打包nodejs项目的方法
2018/09/26 NodeJs
详解ES6 系列之异步处理实战
2018/10/26 Javascript
vue实现拖拽的简单案例 不超出可视区域
2019/07/25 Javascript
Vue.js组件通信之自定义事件详解
2019/10/19 Javascript
[23:21]Ti4 冒泡赛第二轮DK vs C9 2
2014/07/14 DOTA
python操作列表的函数使用代码详解
2017/12/28 Python
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
修复 Django migration 时遇到的问题解决
2018/06/14 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
Python requests获取网页常用方法解析
2020/02/20 Python
Python3实现英文字母转换哥特式字体实例代码
2020/09/01 Python
英国乡村时尚和宠物用品专家:Pet & Country
2018/07/02 全球购物
Kiwi.com中国:找到特价机票并发现新目的地
2019/10/27 全球购物
毕业设计计划书
2014/01/09 职场文书
《雷鸣电闪波尔卡》教学反思
2014/02/23 职场文书
工伤赔偿协议书
2014/04/15 职场文书
运动会演讲稿100字
2014/08/25 职场文书
放飞梦想演讲稿200字
2014/08/26 职场文书
后勤工作个人总结
2015/02/28 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
小学英语教学经验交流材料
2015/11/02 职场文书
小学教师暑期培训心得体会
2016/01/09 职场文书
中学教代会开幕词
2016/03/04 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
如何使用pdb进行Python调试
2021/06/30 Python
Win11安全功能升级:内置防网络钓鱼功能
2022/04/08 数码科技