• JavaScript实现IP地址的输入框方式


    最近遇到一些这样的需求:实现一种IP地址的输入方式,就是输入3个字符或自动跳到下一个输入框内,删除的时候,一个输入框没有了字符,自动跳回上一个输入框。看到这里,相信大家都有一些想法了,没错,这种方法就是4个输入框!!!!通过获取字符的长度和焦点来实现,由此可以推广Mac地址也可以这样实现,就是6个输入框而已了。

    效果图如下

    代码如下

      1 <html>
      2 <head>
      3     <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
      4     <title>JScript实现的IP地址输入框</title>
      5 </head>
      6 <body>
      7 <style type=textcss>
      8     .ip_input  { width:20px; height:16px; font:normal 12px 宋体; color:#000000; border:0px; text-align:center; position:relative; top:1px; }
      9     .all_input  { width:112; height:20px; font:normal 8px 宋体; color:#000000; border:1px solid #000000; text-align:center; }
     10 </style>
     11 
     12 <script language=javascript>
     13 
     14     function getPos(obj)
     15     {
     16         obj.focus();
     17         var workRange=document.selection.createRange();
     18         obj.select();
     19         var allRange=document.selection.createRange();
     20         workRange.setEndPoint("StartToStart",allRange);
     21         var len=workRange.text.length;
     22         workRange.collapse(false);
     23         workRange.select();
     24         return len;
     25     }
     26 
     27 
     28     function setCursor(obj,num)
     29     {
     30         range=obj.createTextRange();
     31         range.collapse(true);
     32         range.moveStart('character',num);
     33         range.select();
     34     }
     35 
     36     function keyDownEvent(obj)
     37     {
     38         code=event.keyCode;
     39         if(!((code>=48&&code<=57)||(code>=96&&code<=105)||code==190||code==110||code==13||code==9||code==39||code==8||code==46||code==99||    code==37))
     40             event.returnValue=false;
     41         if(code==13)
     42             event.keyCode=9;
     43         if(code==110||code==190)
     44             if(obj.value)
     45                 event.keyCode=9;
     46             else
     47                 event.returnValue=false;
     48     }
     49 
     50     function keyUpEvent(obj0,obj1,obj2)
     51     {
     52         if (obj1.value > 255)
     53         {
     54             alert("填写范围必须在 0 - 255间");
     55             obj1.value = obj1.value.substring(0, obj1.value.length - 1);
     56             return;
     57         }
     58         code=event.keyCode
     59 
     60         if(obj1.value.length>=3&&code!=37&&code!=39&&code!=16&&code!=9&&code!=13)
     61             obj2.focus();
     62 
     63         if(code == 32)
     64             obj2.focus();
     65 
     66         if(code == 8 && obj1.value.length == 0)
     67         {
     68             obj0.focus();
     69             setCursor(obj0,obj0.value.length);
     70         }
     71 
     72         if (code == 37 && (getPos(obj1) == 0))
     73         {
     74             obj0.focus();
     75             setCursor(obj0,obj0.value.length);
     76         }
     77         if (code == 39 && (getPos(obj1) == obj1.value.length))
     78         {
     79             obj2.focus();
     80         }
     81     }
     82     function keyUpEventForIp4(obj0,obj)
     83     {
     84         if (obj.value > 255)
     85         {
     86             alert("填写范围必须在 0 - 255间");
     87             obj.value = obj.value.substring(0, obj.value.length - 1);
     88             return;
     89         }
     90         if(code == 8 && obj.value.length == 0)
     91         {
     92             obj0.focus();
     93             setCursor(obj0,obj0.value.length);
     94         }
     95         if (code == 37 && (getPos(obj) == 0))
     96         {
     97             obj0.focus();
     98             setCursor(obj0,obj0.value.length);
     99         }
    100 
    101     }
    102     function getipvalue(obj1,obj2,obj3,obj4,obj)
    103     {
    104         obj.value = obj1.value + "." + obj2.value + "." + obj3.value + "." + obj4.value;
    105         alert(obj.value);
    106     }
    107 </script>
    108 
    109 <form>
    110     <div class=all_input>
    111         <input name=ip1 class=ip_input maxlength=3 onkeydown=keyDownEvent(this) onkeyup=keyUpEvent(ip1,ip1,ip2)>?<input
    112             name=ip2 class=ip_input maxlength=3 onkeydown=keyDownEvent(this) onkeyup=keyUpEvent(ip1,ip2,ip3)>?<input
    113             name=ip3 class=ip_input maxlength=3 onkeydown=keyDownEvent(this) onkeyup=keyUpEvent(ip2,ip3,ip4)>?<input
    114             name=ip4 class=ip_input maxlength=3 onkeydown=keyDownEvent(this) onkeyup=keyUpEventForIp4(ip3,ip4)>
    115         <input name = ipvalue TYPE="hidden">
    116 
    117     </div>
    118     <INPUT TYPE="button" value = "getvalue" onmouseup=getipvalue(ip1,ip2,ip3,ip4,ipvalue)>
    119 </form>
    120 </body>
    121 </html>
    View Code

      其实,主要是运用了focus,keyup,keydown的相关知识而已。

  • 相关阅读:
    RT-SA-2019-005 Cisco RV320 Command Injection Retrieval
    RT-SA-2019-003 Cisco RV320 Unauthenticated Configuration Export
    RT-SA-2019-004 Cisco RV320 Unauthenticated Diagnostic DataRetrieval
    RT-SA-2019-007 Code Execution via Insecure Shell Functiongetopt_simple
    APPLE-SA-2019-3-25-1 iOS 12.2
    APPLE-SA-2019-3-25-5 iTunes 12.9.4 for Windows
    APPLE-SA-2019-3-25-6 iCloud for Windows 7.11
    APPLE-SA-2019-3-25-4 Safari 12.1
    Mybatis下的sql注入
    java代码审计中的一些常见漏洞及其特征函数
  • 原文地址:https://www.cnblogs.com/nelsonlei/p/7698230.html
Copyright © 2020-2023  润新知