zoukankan      html  css  js  c++  java
  • 使用Vue实现IP地址的输入和焦点的自动切换

    公司业务需要学习Vue,前端基础薄弱,连看好几天基础慢慢恶补上来,很多地方还需要改进,直接上代码了:

    JavaScript:

     1         <script>
     2         Vue.directive('foces',{
     3                 update:function(el,{value}){
     4                     var a=el.className.substring(el.className.length-1);
     5                     if(a==value){
     6                         el.focus();
     7                     }
     8                 }
     9         })
    10         var vm=new Vue({
    11             el:"#app",
    12             data:{
    13                 ip1:null,
    14                 focesindex:1,
    15                 ip2:null,
    16                 ip3:null,
    17                 ip4:null,
    18             },computed:{
    19                 allip:function(){
    20                     return this.ip1+"."+this.ip2+"."+this.ip3+"."+this.ip4;
    21                 }
    22             },watch:{
    23                 ip1:function(newIp1){
    24                     if(!this.ip1){
    25                         return;
    26                     }
    27                     this.focesindex=1;
    28                     if(isNaN(newIp1) || newIp1>223){
    29                         alert(newIp1+"不是个有效项目,请指定一个介于1和223之间的数值"); 
    30                         this.ip1=null;
    31                     }else{
    32                         this.ip1=newIp1;
    33                         if(newIp1.length==3){
    34                             this.focesindex=2;
    35                         }
    36                     }
    37                     
    38                 },ip2:function(newIp1){
    39                     if(!this.ip2){
    40                         return;
    41                     }
    42                     this.focesindex=2;
    43                     if(isNaN(newIp1) || newIp1>255){
    44                         alert(newIp1+"不是个有效项目,请指定一个介于1和255之间的数值"); 
    45                         this.ip2=null;
    46                     }else{
    47                         this.ip2=newIp1;
    48                         if(newIp1.length==3){
    49                             this.focesindex=3;
    50                         }
    51                     }
    52                     
    53                 },ip3:function(newIp1){
    54                     if(!this.ip3){
    55                         return;
    56                     }
    57                     this.focesindex=3;
    58                     if(isNaN(newIp1) || newIp1>255){
    59                         alert(newIp1+"不是个有效项目,请指定一个介于1和255之间的数值"); 
    60                         this.ip3=null;
    61                     }else{
    62                         this.ip3=newIp1;
    63                         if(newIp1.length==3){
    64                             this.focesindex=4;
    65                         }
    66                     }
    67                     
    68                 },ip4:function(newIp1){
    69                     if(!this.ip4){
    70                         return;
    71                     }
    72                     this.focesindex=4;
    73                     if(isNaN(newIp1) || newIp1>255){
    74                         alert(newIp1+"不是个有效项目,请指定一个介于1和255之间的数值"); 
    75                         this.ip4=null;
    76                     }else{
    77                         this.ip4=newIp1;
    78                     }
    79                     
    80                 }
    81             }
    82         })
    83     </script>

    html:

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <script type="text/javascript" src="js/vue.min.js" ></script>
        </head>
        <style>
            .input1{
                border:0px;width: 50px;text-align: center;
            }.input2{
                border:0px;width: 50px;text-align: center;
            }.input3{
                border:0px;width: 50px;text-align: center;
            }.input4{
                border:0px;width: 50px;text-align: center;
            }
            .active{
             color:red
            }
        </style>
        <body>
            <div style="border: 2px;" id="app">
                <div>
                <input maxlength="3"  v-foces="focesindex" placeholder="1-223" class="input1" type="text"  v-model="ip1"/>.
                <input maxlength="3"  v-foces="focesindex" placeholder="0-255"  class="input2" type="text"  v-model="ip2"/>.
                <input maxlength="3"  v-foces="focesindex" placeholder="0-255" class="input3" type="text"  v-model="ip3"/>.
                <input maxlength="3"  v-foces="focesindex" placeholder="0" class="input4" type="text"  v-model="ip4"/>.
                </div>
                <p>{{allip}}</p>
            </div>
    </div>
        </body>
    </html>

    最终结果图:

  • 相关阅读:
    [洛谷P2463][SDOI2008]Sandy的卡片
    后缀数组
    周记【距gdoi:110天】
    hdu3068最长回文(Manacher算法)
    二分图的一些题目合集
    周记【距gdoi:117天】
    二分图、网络流模版总结
    2014end
    周记【距gdoi:126天】
    2-sat
  • 原文地址:https://www.cnblogs.com/DoJavaByHeart/p/7389440.html
Copyright © 2011-2022 走看看