使IE兼容placeholder属性

在IE浏览器中实现placeholder属性兼容性的策略 要在Bootstrap项目中集成自定义的placeholder功能,开发者首先需要决定是否依赖Bootstrap自带的支持还是引入外部JavaScript库。如果选择后者,可以使用像jQuery Placeholder这样的库,它与Bootstrap兼容性良好。集成的步骤一般包括:下载并引入JavaScript库文件到项目中。确保在文档加载完毕后()执行库的初始化方法。调整库的配置以适配Bootstrap的样式,例如颜色和字体大小。 阅读详情

如题。

        近日在开发的过程中遇到一个问题,还是IE的兼容性问题,在webkit内核的浏览器中,我们可以设置placeholder来在form中的控件里添加提示性语言。但是在IE这个属性是不被支持的。

        在网上逛了很久,找到了一个解决的方法,直接用js模拟:但是,这个方法在IE7下还是会失效。

    //LET IE SUPPORT PLACEHOLDER ATTRIBUTE
    //autofocus
	$('[autofocus]:not(:focus)').eq(0).focus(); 
           //placeholder 
          var input = document.createElement("input"); 
          if(('placeholder' in input)==false) { 
               $('[placeholder]').focus(function() { 
                    var i = $(this); 
                    if(i.val() == i.attr('placeholder')) { 
                         i.val('').removeClass('placeholder'); 
                         if(i.hasClass('password')) { 
                              i.removeClass('password'); 
                              this.type='password'; 
                         }               
                    } 
               }).blur(function() { 
                    var i = $(this);     
                    if(i.val() == '' || i.val() == i.attr('placeholder')) { 
                         if(this.type=='password') { 
                              i.addClass('password'); 
                              this.type='text'; 
                         } 
                         i.addClass('placeholder').val(i.attr('placeholder')); 
                    } 
               }).blur().parents('form').submit(function() { 
                    $(this).find('[placeholder]').each(function() { 
                         var i = $(this); 
                         if(i.val() == i.attr('placeholder')) 
                              i.val(''); 
                    }) 
               }); 
          }  

参考张鑫旭大神的文章:http://126.am/Yv8nl0

        有其解决placeholder兼容性的方法。但是这个方法在IE下会使得密码框(input type=password)placeholder变成几个圆点。原因就是他是使用input的value来模拟placeholder。当input是password的时候,模拟出来的效果当然就是圆点了。

http://www.oschina.net/code/snippet_206691_26471下面这个方法是比较靠谱的方法,据说兼容IE6/7/8/9.我在360下面测试是没有问题的。建议各位友友可以在xp下对IE6进行测试哈。

具体的实现思路是,在当前的input外面使用一个等同于input的outerHeight的div来包住,同时使用一个span的position为absolute来放在input上方。这个方法的好处就是兼容性非常好,而且对于真正兼容placeholder的浏览器会自动调用原placeholder方法。然后对于不支持的才实行这个降级操作。使用时注意,由于该方法是直接获取input的outerHeight来设置div的高度,所以,最好input不要有任何的margin padding border等属性,否则,会使得absolute设置的span无法对准整个input框的中央。

/*
 * jQuery placeholder, fix for IE6,7,8,9
 * @author JENA
 * @since 20131115.1504
 * @website ishere.cn
 */
var JPlaceHolder = {
	//检测
	_check : function(){
		return 'placeholder' in document.createElement('input');
	},
	//初始化
	init : function(){
		if(!this._check()){
			this.fix();
		}
	},
	//修复
	fix : function(){
		jQuery(':input[placeholder]').each(function(index, element) {
            var self = $(this), txt = self.attr('placeholder');
			self.wrap($('<div></div>').css({position:'relative', zoom:'1', border:'none', background:'none', padding:'none', margin:'none'}));
			var pos = self.position(), h = self.outerHeight(true), paddingleft = self.css('padding-left');
			var holder = $('<span></span>').text(txt).css({position:'absolute', left:pos.left, top:pos.top, height:h, lienHeight:h, paddingLeft:paddingleft, color:'#aaa'}).appendTo(self.parent());
			self.focusin(function(e) {
                holder.hide();
            }).focusout(function(e) {
                if(!self.val()){
					holder.show();
				}
            });
			holder.click(function(e) {
                holder.hide();
				self.focus();
            });
        });
	}
};
//执行
jQuery(function(){
	JPlaceHolder.init();	
});


input的placeholder属性兼容ie8 用span标签定位到placeholder位置,用jq控制span的显示和隐藏。 立即下载

相关推荐

解决IE下不支持placeholder属性

插件描述:解决IE下不支持placeholder属性可以根据自己的需要去扩展. 参考示例:http://www.jq22.com/jquery-info5830

html5的placeholder属性(IE如何兼容placeholder属性)

为了帮助大家更好温习重点知识、更高效的准备面试,特别整理了《前端工程师面试手册》电子稿文件。内容包括html,css,JavaScript,ES6,计算机网络,浏览器,工程化,模块化,Node.js,框架,数据结构,性能优化,项目等等。包含了腾讯、字节跳动、小米、阿里、滴滴、美团、58、拼多多、360、新浪、搜狐等一线互联网公司面试被问到的题目,涵盖了初中级前端技术点。前端面试题汇总CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】JavaScript。

2401_84103216的博客 1053

placeholder属性支持所有IE浏览器的插件

让H5的placeholder属性支持所有的IE浏览器,这个插件有智学无忧老曹亲自编写,使用了代码封装,闭门等技术来实现。欢迎大家下载学习,并提出你们宝贵的意见和建议。

ie下兼容placeholder

之前找过各种兼容ie下的placeholder,结果都不尽人意,最后看到这种,感觉还是可以的,所以分享给大家; html: <div class="login-box"> <h3>用户登录</h3> <ul> <li> <inp...

178

input中placeholder在Ie上兼容

使用jQuery快速解决input中placeholder值在ie中无法支持的问题

AI 赋能测试全生命周期:多 Agent 协同的自动化提效方案

本文提出了一种基于Coze平台的多Agent协同测试解决方案,旨在解决软件测试中PRD解析不清晰、测试点覆盖不全、用例编写效率低、代码生成耗时等痛点。通过PRD优化、测试点生成、测试用例生成和单元测试框架生成四个Agent的协同工作,结合Cursor工具实现从需求到代码的全链路自动化。以电商平台登录模块为例,展示了从模糊PRD到标准化测试用例和可执行Java单元测试代码的完整转化流程。该方案通过AI赋能显著提升测试效率,减少人工干预,实现测试覆盖率≥95%,为快速迭代的软件研发提供了高效的测试自动化支持。

QINJIEEE的博客 1101

Vue项目兼容IE的placeholder

一、前言 最近在做项目中的兼容性处理,由于项目是SPA项目,所以对于网上给出的第三方插件解决方案不能满足项目需求。 实现思路:通过vue自定义指令的形式实现IE9及以下的placeholder兼容。 二、正文 由于项目中使用到了elementui 对于elementui组件也做了单独处理,代码如下: var supportIE = { install:fun...

happy任的博客 1823

【Linux】实际项目应该如何完成?--安防监控系统项目的总结

到目前为止我也做个5、6个嵌入式项目,但以往都是从零开始自己做,也就是毫无计划,想到那里做那里,有想法就会去实现,就这样导致我碰到了很多坑,也消耗了我许多时间,当然,不是说这样不好,因为在其中我也得到了一个很好的锻炼与练习,但是这不适用于在工作中去这样做。...

修成真的博客 6727

FastAPI脚手架工具app-generator-cli:基于uv的AI应用快速生成方案

FastAPI 是当前主流的 Python 异步 Web 框架,其高性能与 Pydantic 集成广受 AI 后端开发者青睐;而 uv 作为 Rust 编写的下一代 Python 包管理器,正逐步解决长期困扰工程化的依赖不一致与安装缓慢问题。二者结合,构成了现代 AI 应用(如 RAG、LangChain Agent)从原型到部署的关键基础设施。本文聚焦于一个生产级 CLI 工具 app-generator-cli,它并非简单模板填充器,而是将 FastAPI 最佳实践、uv 确定性依赖管理、SQLMode

weixin_34279579的博客 449

CDR学习笔记——02

这篇写一些高级CDR的架构原理。

... 1016

机器学习笔记之玻尔兹曼机(一)基本介绍

在受限玻尔兹曼机——模型表示(Representation)一节中以玻尔兹曼机为引,介绍了受限玻尔兹曼机。从本节开始,将正式介绍玻尔兹曼机。相比于它的表示和推断过程,我们更关注它在求解过程中出现的问题。

静静的学习就好 7924

IE如何兼容placeholder属性

在前端开发中,经常需要为input设置placeholder属性,但是placeholder是HTML5新属性,在IE10以下不兼容,那么如何完美兼容呢? 网上搜索了一下,其实也挺简单的,可以采用以下...

QDY5945的博客 234

基于STM32的智能工业机器人臂控制系统

工业机器人臂是智能制造的核心组件,广泛应用于装配、焊接、搬运等任务。基于STM32微控制器的机器人臂控制系统,通过集成伺服电机驱动、运动规划算法和实时通信功能,实现对多轴机械臂的精确控制与路径规划。本设计通过STM32实现了一套智能工业机器人臂控制系统,集成了高效的运动规划算法和实时控制功能。机器人臂系统根据输入的目标位置(如工件坐标),通过运动学计算生成动作轨迹,利用伺服电机驱动器控制关节运动。该系统广泛应用于工业自动化场景,如汽车制造中的零件装配、电子产品生产中的元件焊接以及物流系统中的物料搬运。

stm32d1219的博客 2568

关于input 属性placeholder 在IE9下兼容

今天分享下同事关于input 属性placeholder 在IE9下不兼容的解决方案,小弟不是很懂,希望有看完的大佬说说你们的理解 <script src="http://www.jq22.com/jquery/1.8.3/jquery.min.js"></script> <script> (function($){ $.fn.pl...

265

别再为跨页读写发愁了!STM32F407模拟I2C驱动24C256/512的避坑指南

本文详细解析了STM32F407模拟I2C驱动24C256/512的跨页写入问题,揭示了24C系列存储器'写满一页不会自动翻页'的关键机制,并提供了经过验证的分页写入算法和优化方案。通过GPIO时序优化、地址计算和错误处理等技巧,帮助开发者解决数据错乱、覆盖等常见问题,实现稳定可靠的EEPROM读写操作。

weixin_42631411的博客 377

56、宇宙微波背景辐射(CMB)望远镜及光学系统解析

本文详细解析了宇宙微波背景辐射(CMB)望远镜及其光学系统,重点介绍了交叉德拉贡系统的结构特点、偏振测量误差及其控制、以及大型地面望远镜如ACT和SPT的设计与对比。同时,总结了不同光学系统和探测器阵列的优劣势,并展望了未来发展方向,旨在为CMB研究提供更高效的工具和技术支持。

f9g0h的博客 243

placeholder属性IE兼容方案

placeholder 当我们使用input标签的placeholder属性时,可以很方便的完成输入框的提示功能,在大多数主流浏览器都能完美的显示出来 不过在IE9以及更低版本的IE浏览器,这个属性就失效了,我们可以用以下两种方法来解决这个问题,首先我们看一下html示例代码 index.html form name="loginForm" method="post">

Aha 476

华为OD新系统机试真题 - API请求日志去重分析

华为OD新系统机试真题【API请求日志去重分析】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD4月15号机试真题【API请求日志去重分析】

qq_45776114的博客 915

IE兼容html5的placeholder属性(IE如何兼容placeholder属性)

IE如何兼容placeholder属性HTML5对Web Form做了许多增强,比如input新增的type类型、Form Validation等。Placeholder是HTML5新增的另一个属性,当input或者textarea设置了该属性后,该值的内容将作为灰字提示显示在文本框中,当文本框获得焦点时,提示文字消失。以前要实现这效果都是用JavaScript来控制才能实现。但现在placehol

leason的博客 586

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

兼容ie7以上的 placeholder属性

ie头疼的placeholder <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="http://s28....

农码精神 156

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

兼容ie10以下版本的placeholder属性

<script src="${ctx }/js/jquery.placeholder.js" type="text/javascript"></script> $(function() { $('input').placeholder();//兼容ie10下placeholder属性; }); js文件地址 转载于:https://www.cnb...

weixin_30621919的博客 82

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

html5的placeholder属性(IE如何兼容placeholder属性

默认提示文字是灰色的,可以通过CSS来改变文字样式:allcolor:#999;color:#999;**兼容其他不支持placeholder的浏览器:介绍一个超强的让IE下支持placeholder的属性插件,代码如下:**

2401_83974199的博客 885

jquery解决ie9不兼容input的placeholder属性

;(function($) { $.fn.placeholder = function(options) { var opts = $.extend({}, $.fn.placeholder.defaults, options); var isIE = document.all ? true : false; ...

qq_1518671828欢迎打扰 350

ie11 html5 date,html5 placeholder属性兼容ie11

placeholder 属性是html5的属性,用于提供描述输入字段预期值的提示信息(hint)。简单例子:这个标签属性主要用于提示,未填写之前是会显示的,鼠标触发的时候,是会隐藏的注意:placeholder 属性适用于以下的 类型:text, search, url, telephone, email 和password好的,上面就是placeholder的简单用法简介,然后介绍一下plac...

weixin_33603844的博客 364
上一篇: radio控件使用
下一篇: js实现省市区三级联动select
GiantChan
博客等级 码龄16年 76粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值