關於input在IE低版本情況下不兼容的解決辦法
阿新 • • 發佈:2017-07-28
不兼容 inpu pan app 兼容 type 一個 har charset
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 })
關於input在IE低版本情況下不兼容的解決辦法