关于input在IE低版本情况下不兼容的解决办法

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <meta charset="UTF-8">
 5         <title></title>
 6     </head>
 7     <body>
 8         <input type="text" />
 9         <span>0</span><em>字</em>
10         <ul></ul>
11 <script src="jquery-3.2.1.min.js" type="text/javascript" charset="utf-8"></script>
12 <script type="text/javascript">
13
14 $(‘input:eq(0)‘).keydown(function(ev){
15     //判断条件不对,因为每当input输入的时候,开启了多个定时器,关的时候不知道关的是那个定时器,     但是如果我只输入一个字符的时候,就可以关闭定时器了。
16     if(ev.keyCode!=13){
17         timer=setInterval(function(){
18             $(‘span‘).text($(‘input‘).val().length);
19             console.log(111);
20         },40)
21         }else{
22             clearInterval(timer);
23         }
24
25     })
26 $(‘input:eq(0)‘).keyup(function(ev){
27
28         if(ev.keyCode==13){
29             var x=$(‘<li>‘+$(‘input‘).val()+‘</li>‘);
30             $(‘ul‘).append(x);
31             $(‘input‘).val(‘‘);
32             $(‘span‘).text(‘0‘);
33             clearInterval(timer);
34         }
35     })
36 </script>
37
38     </body>
39 </html>

    上面的方法是错误的,原因在于每次输入的时候都开启了一个定时器,最后关闭的时候不知道该关闭哪一个定时器。下面这个方法是可取的

 1 var timer=null;
 2     $(‘input:eq(0)‘).focus(function(){
 3         timer=setInterval(function(){
 4             $(‘span‘).text($(‘input‘).val().length);
 5             console.log(111);
 6         },40)
 7
 8     })
 9     $(‘input:eq(0)‘).keyup(function(ev){
10         if(ev.keyCode==13){
11             var x=$(‘<li>‘+$(‘input‘).val()+‘</li>‘);
12             $(‘ul‘).append(x);
13             $(‘input‘).val(‘‘);
14             $(‘span‘).text(‘0‘);
15             clearInterval(timer);
16             timer=null;
17         }else{
18             if(!timer){
19                 timer=setInterval(function(){
20             $(‘span‘).text($(‘input‘).val().length);
21             console.log(111);
22         },40)
23             }
24         }
25     })
时间: 2024-08-07 16:58:52

关于input在IE低版本情况下不兼容的解决办法的相关文章

Tomcat启动报错java.net.AbstractPlainSocketImpl(java/net/AbstractPlainSocketImpl.java:178:-1)Struts在网络复杂情况下启动报错解决办法

SSH项目 在网络复杂的情况(具体规律未知)下,Tomcat启动时,报如下错误: [ERROR] 2014-08-12 14:52:58,484 [org.apache.struts2.dispatcher.Dispatcher :27] - Dispatcher initialization failedUnable to load configuration. - Class: java.net.AbstractPlainSocketImplFile: AbstractPlainSocket

低版本IE浏览器不兼容placeholder解决方法

虽说现在很多网站都放弃了IE浏览器的低版本,但是很多时候咱们还得看甲方的要求就制作网站.如果甲方要求兼容IE789,那么咱们就得给人家做出来兼容的产品. 今天就IE789的input标签的placeholder说一说解决方法. 一.优雅降级解决(极力推荐) 也就是俗称的不解决细节,只要大体能满足浏览的要求就可以,placeholder低版本不显示,那么咱们就不在去做兼容方法,反正以后的几年IE低版本的浏览器会被淘汰. 二.使用input的value制作placeholder的效果 这个是我以前用

解决html5新标签 placeholder 低版本浏览器下不兼容问题

placeholder属性是HTML5 中为input添加的.在input上提供一个占位符,文字形式展示输入字段预期值的提示信息(hint),该字段会在输入为空时显示. 实例:1 <input type="text" name="userName" placeholder="请输入用户名"> placeholder操作起来非常方便,提高了开发效率,同时在高版本浏览器中用户体验也很好,所以本人很喜欢用这个属性. 然而,在IE9以下版本浏

idea中,发现某个java语法在低版本中不支持时的解决办法

比如,在某个工程中,准备用java.util.Objects#equals语法,发现提示版本不支持. F4查看Module的配置,发现原来是1.6版本. 当我手动修改为1.8时,提示我:Module是在maven配置的java版本. 于是,去pom文件中,发现是spring boot的默认starter是java 1.6 . <parent> <groupId>org.springframework.boot</groupId> <artifactId>sp

Python多版本情况下四种快速进入交互式命令行的操作技巧

因为工作需求或者学习需要等原因,部分小伙伴的电脑中同时安装了Python2和Python3,相信在Python多版本的切换中常常会遇到Python傻傻分不清楚的情况,今天小编整理了四个操作技巧,以帮助大家解决这个"心头之痛". 1.直接在命令行窗口中输入命令"python",便可以进入命令行了,如下图所示. 不过此时默认弹出的是Python2版本,这是因为小编的电脑中Python的环境变量将Python2放在了Python3的前面,所以默认是弹出Python2版本.

SSRS (SQL Server Report Service) 在IE9, IE10下显示不全的解决办法

在做项目的过程中遇到SSRS与IE9, IE10不兼容的情况,具体表现为报表页面在IE9 和 IE10下面只显示三分之一,靠左显示,下方有滚动条,右三分之二为空白.查看源代码后发现,上面一个<tr>里只有一个<td>,并colspan=3, 下面报表内容区域的<tr>有三个<td>但前两个是hidden的.最初是想把表格结构调整下,去掉前面hidden的两个<td>,后来发现太麻烦不说,还改变了微软原来的表单内容.就在网上搜索解决方案,微软自己说

ViewPage+frament不预加载下一个Frament数据解决办法

在做一个ViewPage+Frament 滑动数效果,当滑动到每一页时加载哪一页的数据,但是ViewPage会预加载下一也数据,这个问题之前做项目是一直未解决,今天找到一个方法一下子就解决的这个问题,Frament里面有一个setUserVisibleHint方法,setUserVisibleHint每次fragment显示与隐藏都会调用,下面说一下这个方法的使用 @Override public void setUserVisibleHint(boolean isVisibleToUser)

js new Date(&#39;yyyy-MM-dd HH:mm:ss&#39;).getTime() 在IE、FF下为NaN的解决办法

今天在一个项目中要做一个倒计时的效果,自己js水平很一般,在网上找了段倒计时代码用了(如下): function CountDown(jqueryObj) { var day_elem = jqueryObj.find('.day'); var hour_elem = jqueryObj.find('.hour'); var minute_elem = jqueryObj.find('.minute'); var second_elem = jqueryObj.find('.second');

javascript小练习-Firefox和低版本chrome下必须采用document方法获取到元素。

在如下的代码中,Firefox和低版本的chrome浏览器,是会报错的,因为#div未定义. <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8"> <title></title> <style> #div1{width: 200px;height: 200px;background-color: aqua;displ