• IFE JavaScript Task0002-1 小练习1:处理用户输入


    对自己最近做的一些小练习进行总结吧,巩固下记忆;

    IFE JavaScript Task0002-1 小练习1:处理用户输入

    第一阶段

    在页面中,有一个单行输入框,一个按钮,输入框中用来输入用户的兴趣爱好,允许用户用半角逗号来作为不同爱好的分隔。

    当点击按钮时,把用户输入的兴趣爱好,按照上面所说的分隔符分开后保存到一个数组,过滤掉空的、重复的爱好,在按钮下方创建一个段落显示处理后的爱好。

    思路:创建一个数组保存数据;其中用array.split方法,以(",")为分割号作为数组元素的分割;

    去掉数组里重复与空的元素;方法有很多,我这里用的是indexOf方法,先建立一个新数组;然后把这个数组的元素与之前保存用户数据的数组进行对比,如果找不到并且值不为空,那就把此时元素存进新的数组里;进行去重和过滤;

    (其实也想过用filter方法,但是显示错误用不了,等以后再完善下)

    第二阶段

    单行变成多行输入框,一个按钮,输入框中用来输入用户的兴趣爱好,允许用户用换行、空格(全角/半角)、逗号(全角/半角)、顿号、分号来作为不同爱好的分隔。

    思路:这个将分隔符号变为正则进行检测就好了;

    第三阶段

    用户输入的爱好数量不能超过10个,也不能什么都不输入。当发生异常时,在按钮上方显示一段红色的错误提示文字,并且不继续执行后面的行为;当输入正确时,提示文字消失。

    同时,当点击按钮时,不再是输出到一个段落,而是每一个爱好输出成为一个checkbox,爱好内容作为checkbox的label。

    思路:先在去重前进行判断,超过就显示错误提示;

    然后最后对处理好的数据用innerHTML输出;

    代码如下:

     1 <body>
     2 <textarea type="text" class="hobby"cols="45" rows="10"></textarea> <button class="hobby-btn">确定</button>
     3 <p style="display: none;color: red" class="error">输入的爱好数量不能超过10个,并且不能为空</p>
     4 <form class="textshow"></form>
     5 </body>
     6 <script>
     7     var hobbybtn=document.querySelector(".hobby-btn");
     8     var show=document.querySelector(".textshow");
     9     var erorrtirp=document.querySelector(".error");
    10     hobbybtn.onclick=function(){
    11         var hobbyText=document.querySelector(".hobby").value.trim();
    12         var hobbyArray=hobbyText.split(/
    |s+|\,|,|、|;|;/);
    13         var resultarr=[];//去重后的数组
    14         if(hobbyArray.length>10||hobbyText===""){
    15             erorrtirp.style.display="block";
    16         }
    17         else{
    18             erorrtirp.style.display="none";
    19             for(var i=0;i<hobbyArray.length;i++){
    20                 if(resultarr.indexOf(hobbyArray[i])===-1&&hobbyArray[i]!==""){
    21                     resultarr.push(hobbyArray[i]);
    22                 }
    23             }
    24             for(var j=0;j<resultarr.length;j++){
    25                 show.innerHTML+= "<label>" + "<input type='checkbox'>" + resultarr[j] + "</label>"
    26             }
    27         }
    28 
    29 
    30 
    31 
    32         /*function check(item) {
    33 34              for(var i=0;i<hobbyArray.length;i++){
    35                     if(item!==hobbyArray[i]){
    36                         return item
    37                     }
    38                 }
    39             }
    40 41         var newarry=hobbyArray.filter(check(item));*/
    42 
    43     }
    44 
    45 </script>
  • 相关阅读:
    027、获取后台正在运行的程序
    026、TelephonyManager的应用
    025、WiFi服务
    024、Wallpaper桌面墙纸
    023、在手机上实现打开文件功能
    Git使用ssh协议配置Github远程仓库避免踩坑指南(Windows环境)
    Linxu网络常用命令(CentOS 7)
    插入耳机后,内置麦克风(话筒)输入音量变很轻的解决办法(Windows 10 + Conexant声卡)
    PowerShell Write-Output 支持参数数组传入
    工商银行网银助手无法安装:系统无法打开指定的设备或文件
  • 原文地址:https://www.cnblogs.com/spezz07/p/5819954.html
Copyright © 2020-2023  润新知