• JavaScript的综合案例


    案例要求:

    实现一个表单验证

    1.当输入框失去焦点时,验证输入的内容是否符合要求

    2.当点击注册按钮时,判断所有输入框的内容是否都符合要求,如果不符合要求阻止表单提交

    简单的页面实现

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    6. <title>欢迎注册title>
    7. head>
    8. <body>
    9. <h1>欢迎注册h1>
    10. <form action="#" id="register">
    11. <table>
    12. <tr>
    13. <td>用户名td>
    14. <td>
    15. <input type="text" name="username" id="username" >
    16. <span id="uwername_err" style="display: none;" >用户名不符合规则span>
    17. td>
    18. tr>
    19. <tr>
    20. <td>密码td>
    21. <td>
    22. <input type="password" name="password" id="password">
    23. <span id="password_err" style="display: none;" >密码不符合规则span>
    24. td>
    25. tr>
    26. <tr>
    27. <td>电话td>
    28. <td>
    29. <input type="text" name="tel" id="tel">
    30. <span id="tel_err" style="display: none;" >电话不符合规则span>
    31. td>
    32. tr>
    33. table>
    34. <input type="button" value="提交">
    35. form>
    36. body>
    37. html>

     

    1.当输入框失去焦点时,验证输入的内容是否符合要求

    我们先设置用户名的事件,当鼠标离焦该元素时,触发函数

    1. <tr>
    2. <td>用户名td>
    3. <td>
    4. <input type="text" name="username" id="username" onblur="checkUsername()">
    5. <span id="uwername_err" style="display: none;" >用户名不符合规则span>
    6. td>
    7. tr>

     checkUsername函数的实现

    1. <script>
    2. function checkUsername()
    3. {
    4. //获取用户框输入的值
    5. let usernameValue= document.getElementById("username").value;
    6. //创建正则对象
    7. // let regex=new RegExp("^\\w{6,10}$");
    8. let regex=/^\w{6,10}$/;
    9. //判断输入的值是否符合正则
    10. if(regex.test(usernameValue)){
    11. //重现设置为隐藏
    12. document.getElementById("uwername_err").style.display="none";
    13. return true;
    14. }else{
    15. //不满足,把用户名的span标签显示出来
    16. document.getElementById("uwername_err").style.display="block";
    17. document.getElementById("uwername_err").style.color="red";
    18. //阻止表单提交
    19. return false;
    20. }
    21. }
    22. script>

    结果:

    设置密码的绑定事件

    1. <tr>
    2. <td>密码td>
    3. <td>
    4. <input type="password" name="password" id="password" onblur="checkPassword()">
    5. <span id="password_err" style="display: none;" >密码不符合规则span>
    6. td>
    7. tr>

     checkPassword函数

    1. <script>
    2. function checkPassword(){
    3. //获取密码框输入的值
    4. let passwordValue=document.getElementById("password").value;
    5. //创建正则对象
    6. let regex=/^.{6,12}$/;
    7. //判断是否满足
    8. if(regex.test(passwordValue)){
    9. //满足,把密码的span标签内容隐藏
    10. document.getElementById("password_err").style.display="none";
    11. //提交表单
    12. return true;
    13. }else{
    14. //不满足
    15. document.getElementById("password_err").style.display="block";
    16. document.getElementById("password_err").style.color="red";
    17. return false;
    18. }
    19. }
    20. script>

     设置电话的绑定事件

    1. <tr>
    2. <td>电话td>
    3. <td>
    4. <input type="text" name="tel" id="tel" onblur="checkTel()">
    5. <span id="tel_err" style="display: none;" >电话不符合规则span>
    6. td>
    7. tr>

    checkTel函数

    1. <script>
    2. function checkTel(){
    3. //获取电话框输入的值
    4. let telValue=document.getElementById("tel").value;
    5. //创建正则对象
    6. let regex=/^1[3-9]\d{9}$/;
    7. if(regex.test(telValue)){
    8. document.getElementById("tel_err").style.display="none";
    9. return true;
    10. }else{
    11. //不满足
    12. document.getElementById("tel_err").style.display="block";
    13. document.getElementById("tel_err").style.color="red";
    14. return false;
    15. }
    16. }
    17. script>

    2.当点击注册按钮时,判断所有输入框的内容是否都符合要求,如果不符合要求阻止表单提交 

    我们现在实现的功能有一个框不符合规则也可以提交数据成功 

    1. <script>
    2. //给form表单绑定提交事件
    3. document.getElementById("register").onsubmit=function(){
    4. //三个框只要有一个非法就组织表单提交
    5. return checkPassword()&&checkTel()&&checkUsername();
    6. }
    7. script>

    说明:onsubmit的匿名函数返回false就不提交数据

    结果:有一个不符合,就不提交数据

    说明:全部符合,才提交数据

    浏览器debug

    1.在页面打开控制台

    2.打开源代码 

  • 相关阅读:
    Java 方法的使用
    Docker实践经验:Docker 上部署 mysql8 主从复制
    Rasa系列教程(一) -- 系统及各组件介绍
    EasyRecovery15最新版功能强大的电脑数据恢复
    【MySQL】数据库基础
    物联网开发笔记(8)- 使用Wokwi仿真ESP32开发板实现模数转换和脉宽调制
    从libc-2.27.so[7fd68b298000+1e7000]崩溃回溯程序段错误segfault
    C语言printf中%s、%*s、%*.*s的作用以及实现一个进度条
    乐优商城_第2章_-认识微服务(HttpClient+Eureka+Robbin)
    Windows10安装麒麟桌面V10双系统
  • 原文地址:https://blog.csdn.net/luosuss/article/details/138869516