IE8,IE9简单实现placeholder

11 篇文章 0 订阅
3 篇文章 0 订阅

收到一个新需求,要改一个jsp项目的登录页,看了下设计图,感觉还好,要求兼容到IE8,,,也还好,基本是做出来了,到最后还剩一个placeholder的问题,网上查了一些方法,再结合自己的理解写了一下。

基本思路就是:

     用户名和密码框后面分别放一个 span,作为假的 placeholder 占位,document.ready 的时候,判断浏览器是否支持placeholder,判断之后发现:IE9 和 IE8 不支持,但是 IE8 还能取到 placeholder 这个属性,就加了两个限定条件

     至于添加了屏蔽 tab 键的逻辑,是因为发现整个做完都很好,但是我习惯性用 tab 键切换登录页输入框,就出现了 placeholder 没有隐藏掉。

            var ua = navigator.userAgent.toLowerCase();  
		    var isIE = ua.indexOf("msie")>-1;  
		    var safariVersion;  
		    if(isIE){  
		    	safariVersion =  ua.match(/msie ([\d.]+)/)[1];  
		    }
			if(!document.getElementById('person.loginId').placeholder || safariVersion=='8.0') { // IE,没有placeholder 
				$('.user input').next().text('请输入用户名');
				$('.pwd input').next().text('请输入密码');
				
				$('body').on('keydown', function(){
					if (event.keyCode == 9) { // 禁掉tab键——tab键会导致模仿placeholder失效
		                return false; //非常重要
		            }
				})

				/* IE8 IE9不支持placeholder,模仿实现placeholder */
				$('.user').click(function(){
					$('.user input').next().hide();
					$('.user input').focus();
				})
				$('.pwd').click(function(){
					$('.pwd input').next().hide();
					$('.pwd input').focus();
				})
				$('.user input').blur(function(e){
					var value = e.currentTarget.value;
					if(!value) {
						$('.user input').next().show();
					}
				})
				$('.pwd input').blur(function(e){
					var value = e.currentTarget.value;
					if(!value) {
						$('.pwd input').next().show();
					}
				})
				
			}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值