项目:注册登录案例

通过之前所学内容,包括基本的html,css,javascript操作,还学习了正则表达式,运用所学内容,做了个注册登录的页面。

页面布局

如下:在这里插入图片描述

HTML设置

在HTML里,我运用的是一个大的div包裹整个内容,每一块小内容再分别用div包裹,并设置好每项的id属性和class属性,再包括placeholder最最基本的友情提醒的属性。
以用户名为示范:

      <!-- 用户名 -->
      <div class="user">
        <span class="star">*</span>
        <label>用户名:</label>
        <input type="text" class="text" id="userName" placeholder="用户设置成功后不可修改">
        <p class="item"></p>
      </div>
      <div class="line"></div><br/>

CSS设置

接下来就是设置CSS样式,这里要求的是当文本框焦点时,右边会有提示,并且文本框有个阴影效果。
在这里插入图片描述
因为之前在html页面中我设置的提示字是用一个p标签class属性为item,所以这里我运用到display: inline-block;使其从块级元素成为行级元素。

/*文本框选中时样式设置*/
#main .user .text:focus{
   
  box-shadow: 1px 1px 10px #6385d1;
}
/*提示内容设置*/
#main .item{
   
  display: inline-block;
  position: absolute;
  left:70%;
  font-size:14px;
  font-weight: normal;
}

JavaScript设置

在JavaScript中要做的部分就很多了,首先就是最明显的,当用户没有输入某一项就跳转到另一项时,右边的提示文字会变成红色字体,并且会有新的提示语句,同时也要判断每一项是否符合填写要求,不能到最后要提交时再提醒,这样才能让用户有个好的体验。
在这里插入图片描述
那么以用户名来做个示范:

// 用户名设置
//当光标输入时友情提示
userName.onfocus=function(){
   
  item[0].innerHTML = "请输入6-30位字母、数字或'_'";
  item[0].style.color = 'green';
};
//当鼠标离开输入框时 产生验证
userName.onblur = function(){
   
  var reg =/^\w{6,30}$/;
  if(this.value==""){
   
    item[0].innerHTML = "用户名不能为空";
    item[0].style.color = 'red';
  } else if (!reg.exec(userName.value)){
   
    item[0].innerHTML = "请输入6-30位字母、数字或'_'";
    item[0].style.color = 'red';
  } else{
   
    item[0].innerHTML = "格式正确";
    item[0].style.color = 'green';
    test0 = true;
  }
}

在提交的时候,也需要做个校验,看看用户是否每一项都填写并且填对,是否阅读了规定条约并且打钩,这里我的做法是先将所有项默认不正确,到填写每一项时候判断成功,再讲他覆盖为正确
代码为:

//默认每一项格式不正确
var test0 = false,
test1 = false,
test2 = false,
test3 = false,
test4 = false,
test5 = false,
test6 = false;

在上面的JS设置用户名时也看到了最后那行test0 = true; 在每一项自己判断的时候都要加喔~

继续说提交的时候,这里我们要想一下,是用逻辑与还是或,思考后我用了逻辑或,这是一开始我写的代码

button.onclick=function(){
   
if(choose.checked==false || test0==false || test1==false || test2==false || test3==false || test4==false || test5==false || test6==false){
   
alert("您登记的信息有误!");
} else{
   
    alert("登记成功!");
  }
};

后来根据小伙伴的讲解,我觉得if后面那一行实在太长,改为他说的逻辑非和逻辑或,后来我的代码做了个改变,这是后来的代码

button.onclick=function(){
   
  if(!test0 || !test1 || !test2 || !test3 || !test4 || !test5 || !test6){
   
    alert("您登记的信息有误!");
  } else if(choose.checked==false){
   
    alert("您未勾选《我已阅读并同意遵守规定》")
  } else{
   
    alert("登记成功!");
  }
};

这样看起来代码就简洁并且很好理解了

最后我还归纳了几个知识点

1.封装ID

function $(id){
   
  return typeof(id)==="string"?document.getElementById(id):id;
}

2.querySelectorAll
querySelectorAll() 方法返回文档中匹配指定 CSS 选择器的所有元素,返回节点列表(集合)、数组
兼容:chrome4.0+、Ie8+、firefox3.5+、opera10+、safari3.2+
代码:

// 获取文档中所有 class="example" 的 <p> 元素
var x = document.querySelectorAll("p.example"); 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值