zoukankan      html  css  js  c++  java
  • 29、任务二十九——阻止点击之后的默认事件

    0、题目

    • 示例图中所示,在页面中实现一个输入框与按钮,要求点击验证按钮后,对输入框中内容进行格式校验,并在其下方显示校验结果
    • 校验规则:
      • 1.字符数为4~16位
      • 2.每个英文字母、数字、英文符号长度为1
      • 3.每个汉字,中文符号长度为2

    1、解答过程

    task29.html

      1 <!DOCTYPE html>
      2 <html>
      3   <head>
      4     <meta charset="UTF-8">
      5     <title>IFE JavaScript Task 29</title>
      6     <style>
      7     form{
      8         margin:auto;
      9         width:600px;
     10         height:65px;
     11         font-size: 24px;
     12     }
     13     input{
     14         width:300px;
     15         height:30px;
     16         margin:20px;
     17         border-radius: 7px;
     18         border:1px solid rgba(198, 202, 220, 0.35);
     19     }
     20     input:focus{
     21         border:1px solid rgba(181, 187, 216, 0.9);
     22         border-radius: 7px;
     23         outline:none;
     24 
     25     }
     26     button{
     27         border:1px solid rgba(34, 71, 255, 0.35);
     28         background-color:rgba(34, 71, 255, 0.35);
     29         width:150px;
     30         height:40px;
     31         font-size: 24px;
     32         color:white;
     33         letter-spacing: 10px;
     34         border-radius: 7px;
     35     }
     36     #result{
     37         margin-left: 450px;
     38         font-weight: bold;
     39         color:rgba(128, 128, 128, 0.52);
     40     }
     41     </style>
     42   </head>
     43 <body>
     44 <form>
     45     <label for="input">名称</label>
     46     <input id="input" type="text"/>
     47     <button id="test">验证</button>
     48 </form>
     49 <div id="result">必填,长度为4~16个字符</div>
     50 
     51 <script type="text/javascript" >
     52 var input=document.getElementById('input'),
     53     test=document.getElementById('test'),
     54     result=document.getElementById("result");
     55 //初始状态
     56 function origin(){
     57     result.innerHTML="";
     58     result.style.color="red";
     59     input.style.border="2px solid red";
     60 }
     61 //点击验证按钮
     62 test.addEventListener("click",function(e){
     63     origin();
     64     var length=checkLength(input.value);
     65     if(length<4||length>16){
     66         result.innerHTML="字符长度为4~16个,一个汉字算两个字符!";
     67         result.style.color="red";
     68         input.style.border="2px solid red";
     69     }
     70     if(!/^[a-zA-Z0-9u4e00-u9fa5]+$/.test(input.value)){
     71         result.innerHTML="只能输入中文,字母和数字哦!";
     72         result.style.color="rgba(12, 234, 81, 0.62)";
     73         input.style.border="2px solid rgba(12, 234, 81, 0.62)";
     74     }
     75     if((/^[a-zA-Z0-9u4e00-u9fa5]+$/.test(input.value))&&length>=4&&length<=16){
     76         result.innerHTML="验证成功!";
     77         result.style.color="rgba(12, 234, 81, 0.62)";
     78         input.style.border="2px solid rgba(12, 234, 81, 0.62)";
     79 
     80     }
     81     if(input.value==""){
     82         result.innerHTML="名称不能为空!";
     83         result.style.color="red";
     84         input.style.border="2px solid red";
     85     }
     86     e.preventDefault();
     87     return false;
     88 });
     89 //检验输入的值有多少个字符
     90 function checkLength(str){
     91     var len =0,temp=0;
     92     for(var j=0;j<str.length;j++){
     93       temp = 1;
     94       if(/^[u2E80-u9FFF]+$/.test(str[j])){
     95           temp = 2;
     96       }
     97       len += temp;
     98     }
     99     return len;
    100 }  
    101 </script>
    102 </body>
    103 </html>

    2、遇到的问题

    (1)阻止鼠标点击的默认事件

    //停止事件冒泡
    function stopPropagation(event) {
    var e = event || window.event;
    if (e.stopPropagation)
    e.stopPropagation();
    e.cancelBubble = true;
    }

    //停止默认事件
    function preventDefault(event) {
    var e = event || window.event;
    if (e.preventDefault)
    e.preventDefault();
    e.returnValue = false;
    }

    element.onclick = function(e){stopPropagation(e);preventDefault(e);return false;}//兼容所有浏览器

    如果是超链接即A标签的话,请将href设置为javascript:void(0);


    (2)改变input框的默认样式
  • 相关阅读:
    Manacher算法(一个字符串中找到最长回文子串)
    tomcat之负载均衡(apache反响代理tomcat)
    【转】Tomcat集群Cluster实现原理剖析
    负载均衡集群之LVS持久链接
    负载均衡集群之LVS的DR模型详解(Diretor Routing)
    负载均衡集群之LVS算法和模型
    负载均衡集群之LVS配置命令
    mysql之6备份恢复
    mysql之主从复制
    haproxy之配置文件解析
  • 原文地址:https://www.cnblogs.com/cjlalala/p/5913646.html
Copyright © 2011-2022 走看看