博客列表 >jQuery常用dom操作之验证用户名

jQuery常用dom操作之验证用户名

景云
景云原创
2021年03月20日 11:51:31492浏览

先引入库

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>

css

  1. form{
  2. display: grid;
  3. width: 20em;
  4. gap:1em;
  5. border:1px solid gray;
  6. padding: 1em;
  7. }

html

  1. <form action="check.php">
  2. 账号:<input type="text" name="username" />
  3. 密码:<input type="password" name="password" />
  4. <button>登录</button>
  5. </form>

js

  1. // 禁用表单的默认提交行为
  2. $("form").submit(ev=>ev.preventDefault());
  3. //document.querySelector("form").onsubmit=ev=>ev.preventDefault();//原生写法
  4. // 验证用户名是否为空,为空则提示不能为空,不为空验证用户名是否存在,存在则提示已存在,不存在提示可以注册
  5. const user=$("input[name='username']");
  6. //失去焦点时进行验证
  7. user.blur(function(){
  8. //不能使用箭头函数,因为箭头函数没有自己的this,它的this来自上上文
  9. // 提示信息
  10. let tips="";
  11. // 用户列表(用于测试)
  12. const users=['admin','web','jy'];
  13. //进行非空验证
  14. if($(this).val().length===0){
  15. //值得长度为0进行提示
  16. tips="用户名不能为空";
  17. $(this).focus();//激活输入框
  18. } else if(users.indexOf($(this).val())===-1){
  19. //返回-1则表示此值在用户列表中没有
  20. tips="用户名不存在,请注册"+"<button>注册</button>";
  21. }else{
  22. tips="<i style='color:green;'>用户名正确</i>";
  23. }
  24. //防止提示信息重复插入页面(判断其下一个元素的名字时不是SPAN)
  25. if($(this).next()[0].tagName!=="SPAN"){
  26. $("<span></span>").html(tips).css("color","red").insertAfter($(this));
  27. }
  28. })
  29. //用户修改文本的输入时,将提示信息清空
  30. user.on("input",function(){
  31. $(this).next("span").remove();
  32. })
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议