进一步简化封装

进一步简化封装

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <style type="text/css">
 form{
  width:300px;
  background:pink;
  text-align: center;
  padding:30px 0;
  margin:100px auto;
 }
</style>
</head>
<body>
 <form id="form">
  <p>
   <input type="text" name="name" id="username" placeholder="请输入账户名">
  </p>
  <span></span>
  <p>
   <input type="text" name="chinaName" id="chinaName" placeholder="请输入中文名">
  </p>
  <span></span>
  <p>
   <input type="email" name="eamil" id="email" placeholder="请输入邮箱">
  </p>
  <span></span>
  <p>
   <input type="submit" value="注册" id="submit">
  </p>
 </form>
<script type="text/javascript">
 var spans=document.getElementsByTagName("span");
 var username=document.getElementById("username");
 var chinaName=document.getElementById("chinaName");
 var email=document.getElementById("email");
 var submit=document.getElementById("submit");
 var input1=false;
 var input2=false;
 var input3=false;
 var len=spans.length;
 console.log(len)
 //验证正则
 var reg={
  'zhanghu':/^\w{6,18}$/,
  'xingming':/^[\u4e00-\u9fa5]{2,5}$/,
  'email':/^\w+@\w+\.[a-zA-Z_]{2,4}$/,
 }
 username.onfocus=function(){
  spans[0].innerHTML="请输入账户名";
  spans[0].style.color="green";
 }
 username.onblur=function(){
  if(this.value==""){
   spans[0].innerHTML="账号不能为空";
   spans[0].style.color="red";
  }else{
   if(!reg.zhanghu.exec(username.value)){
    spans[0].innerHTML="请输入正确的账户名";
    spans[0].style.color="red";
   }else{
    spans[0].innerHTML="账户正确";
    spans[0].style.color="green";
    input1=true;
   }
  }
 }
 chinaName.onfocus=function(){
  spans[1].innerHTML="请输入中文名";
  spans[1].style.color="green";
 }
 chinaName.onblur=function(){
  if(this.value==""){
   spans[1].innerHTML="名字不能为空";
   spans[1].style.color="red";
  }else{
   if(!reg.xingming.exec(chinaName.value)){
    spans[1].innerHTML="请输入正确的名字";
    spans[1].style.color="red";
   }else{
    spans[1].innerHTML="名字正确";
    spans[1].style.color="green";
    input2=true;
   }
  }
 }
 email.onfocus=function(){
  spans[2].innerHTML="请输入邮箱";
  spans[2].style.color="green";
 }
 email.onblur=function(){
  if(this.value==""){
   spans[2].innerHTML="邮箱不能为空";
   spans[2].style.color="red";
  }else{
   if(!reg.email.exec(email.value)){
    spans[2].innerHTML="请输入正确的邮箱";
    spans[2].style.color="red";
   }else{
    spans[2].innerHTML="邮箱正确";
    spans[2].style.color="green";
    input3=true;
   }
  }
 }
 submit.onclick=function(){
  if(input1==false || input2==false || input3==false){
   alert("注册失败");
  }else{
   alert("注册成功");
  }
 }
</script>
</body>
</html>


我封装了正则表达式,下一步应该怎样简化封装代码呢 给个思路

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕星星 2019-03-18 18:43:29

你好,因为代码较少,可以不进行封装的。如果想要封装,可以将事件中的代码提取出来,放在函数中,不同的内容进行传参,例如用户名:

http://img1.sycdn.imooc.com//climg/5c8f76430001178609980834.jpg

自己可以修改测试下。

好帮手慕星星 2019-03-18 18:13:20

你好,代码实现效果是没有问题的。

这样写就可以哦,不需要简化了。

祝学习愉快!

  • 提问者 慕后端8593059 #1
    课程中不是提到了还可以冗余代码重复代码简化么?不能回答?
    2019-03-18 18:15:40
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
组件化思想开发电商网页 18版
  • 参与学习           人
  • 提交作业       467    份
  • 解答问题       4826    个

本路径带你通过系统学习HTML5、JavaScript、jQuery的进阶知识,不仅如此,还会学习如何利用组件化的思想来开发网页,知识点+案例,使得所学可以更好的得到实践。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师