关于register函数,为什么要再一次的test?

关于register函数,为什么要再一次的test?

失焦后,在checkUser和checkPwd里面,已经得到过正则的test结果,为什么不直接把结果传给全局变量,然后在点击注册的时候检测这个全局变量来判断,而是重新去test一次,感觉有点冗余。众所周知,表单验证很重要,这样做是出于什么安全问题考虑吗?实在不知道,可能自己考虑地不够细致,请老师解答。

正在回答

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

2回答

同学你好,你说的这种情况,是正常现象,当输入框处于聚焦状态时,点击“登录”或者“注册”按钮切换时,一定会触发输入框的失焦事件,这种情况没法避免,所以同学说的那种定义一个全局变量是不可以的。

一般这种出现情况,会在切换后,将提示信息和输入框内容设置为空,回归一个初始状态,示例:以用户名为例

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

同学不用纠结这些,实际开发中,并不一定就是现在的登录注册效果,具体的是要根据实际需要去决定如何展示提示信息的。这里的重点是学习如何实现前后端通信。

祝学习愉快~

好帮手慕慕子 2020-09-20 17:45:40

同学你好,编程是灵活的,一种效果可以有多种实现方式,视频中没有声明全局变量,而是直接再验证一次。

同学的思路,使用一个全局变量保存鼠标失焦后的验证结果,然后在点击注册的时候直接判断这个全局变量就可以了,也是可以的哦,同学自己在练习的时候,可以尝试使用这种方式去实现。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 老师,我又遇到新的问题了,请帮忙看看。 点击“登录”与“注册”切换界面后,失去焦点,会自动触发失焦事件,以至于短暂的出现“XXX不能为空”的提示,这显然是不想看到的。那么怎么才能消除这种影响呢?即在点击事件A里面,取消触发事件B的效果。我想到的一个思路是,设置一个全局变量开关,打开状态下,B里面的效果才执行,并在执行完后将开关复原,点击触发事件A,关闭开关。常规思路是什么样的呢?
    2020-09-20 17:57:21
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

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

在线咨询

领取优惠

免费试听

领取大纲

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