一个用原生 JavaScript 实现的登录注册功能,求教下面这行代码做了什么事情?

2021-06-09 13:27:41 +08:00
 he2020
注释掉 login.js 文件下的该行代码,貌似对项目运行也完全没有影响。
https://github.com/user65536/userManager/blob/master/login/login.js#L19
另外,在 render.js 文件中,
if(type && type !== 'defalut'){}

其中 type !== 'defalut'的作用是什么?
项目预览地址: https://user65536.github.io/userManager/login/login.html
2253 次点击
所在节点    JavaScript
8 条回复
66beta
2021-06-09 13:42:33 +08:00
```js
Render.prototype.byTarget = function (target, type, msg) {
var root = utils.getParent(target, 2);
if(type && type !== 'defalut') {
root.classList.add('with-' + type);
root.getElementsByClassName('help-block')[0].innerText = msg;
} else {
root.classList.remove('with-error', 'with-success');
root.getElementsByClassName('help-block')[0].innerText = '';
}
}
```
表单验证的样式与错误提示

19 行 20 行是重置表单验证样式
7gugu
2021-06-09 13:49:15 +08:00
第二段代码的意思是,如果有传入 type 类型,并且 type 类型不是 default 的话(源代码拼错单词了),就给 target 加上 type 样式(具体表示是 class="with-xxx")。
he2020
2021-06-09 14:52:19 +08:00
@7gugu 搜遍了整个项目都没有发现有传入 type 类型为 default 的情况,所以疑惑这里要判断 type 类型是否为 default 会不会有点多余
no1xsyzy
2021-06-09 15:01:36 +08:00
@he2020 看上去根本没传过,可能是抄的,又没有 ^C^V
不过我尝试搜索全 Github 的时候触发 Rate limit 了(
he2020
2021-06-09 15:03:17 +08:00
@66beta 感谢,理解了很多,但把重置表单验证样式放在 sumit 事件上会不会有点多余。因为作者在 login.js 文件中还监听了 input 事件,一旦用户在表单中修改了信息,表单中的 value 值发生变化,同样会调用 render.byTarget(target)清楚之前的错误提示。
he2020
2021-06-09 15:05:58 +08:00
@66beta 清楚 -> 清除。
这也解释了为什么注释掉该行代码,对运行效果也完全没有影响的原因。
jrtzxh020
2021-06-10 11:22:48 +08:00
type !== 'defalut'意思重置样式。传入这个参数 删除 with-error', 'with-success'类。还原 form.css 45 行到 54 行的.defalutl 类的样式啊
he2020
2021-06-10 11:47:49 +08:00
@jrtzxh020 问题的关键是整个项目中貌似都没有传入 type 类型为 default 的情况,所以这里的判断显得有点多余(

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/782380

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX