技术解析

一个用原生 JavaScript 实现的登录注册功能,求教下面这行代码做了什么事情?
0
2021-08-09 21:50:10
idczone
注释掉 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

```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 行是重置表单验证样式

第二段代码的意思是,如果有传入 type 类型,并且 type 类型不是 default 的话(源代码拼错单词了),就给 target 加上 type 样式(具体表示是 class="with-xxx")。

搜遍了整个项目都没有发现有传入 type 类型为 default 的情况,所以疑惑这里要判断 type 类型是否为 default 会不会有点多余

看上去根本没传过,可能是抄的,又没有 ^C^V
不过我尝试搜索全 Github 的时候触发 Rate limit 了(

感谢,理解了很多,但把重置表单验证样式放在 sumit 事件上会不会有点多余。因为作者在 login.js 文件中还监听了 input 事件,一旦用户在表单中修改了信息,表单中的 value 值发生变化,同样会调用 render.byTarget(target)清楚之前的错误提示。

清楚 -> 清除。
这也解释了为什么注释掉该行代码,对运行效果也完全没有影响的原因。

type !== 'defalut'意思重置样式。传入这个参数 删除 with-error', 'with-success'类。还原 form.css 45 行到 54 行的.defalutl 类的样式啊

问题的关键是整个项目中貌似都没有传入 type 类型为 default 的情况,所以这里的判断显得有点多余(

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服