Appearance
习题
控件
- 控件的 name 属性与 id 属性各服务于谁?漏写 name 的控件,用户填了值会发生什么?(再认)
- label 与 placeholder 都能"提示"用户,两者有何区别?各适合放什么内容?(辨析)
- 提示:从"提示何时可见、消失后还剩什么"想
- 把"性别"做成文本框、或做成单选框,提交到后端的值有什么本质区别?哪种几乎不需要校验,为什么?(辨析)
- 提示:从"用户可能提交哪些值"想
type="tel"、type="date"在手机上与普通文本框有何不同?(再认)- 用 div 自绘一个下拉框,除了外观可控,还会失去什么?(辨析)
- 提示:键盘用户和读屏用户还认得它吗
数据校验
required与一段判断非空的 JavaScript,各属于哪种校验表达方式?各有什么代价?(再认)- "结束日期必须晚于开始日期"属于哪一级校验?为什么
required/pattern表达不了?(辨析) - 为什么"检查用户名是否已被注册"这一条,永远做不成纯前端校验?(迁移)
- 提示:这条规则的答案存在哪里
- 注册页填完用户名还没提交,就提示"该用户名已被注册"——这次校验由谁执行?预检显示"可用",提交时为什么还可能报"已被注册"?(辨析)
- 提示:判断要用的事实在哪里;预检与提交是两次隔着时间的独立检查
- 爬虫或 agent 浏览器提交表单时,你写的 required 还拦得住它吗?这决定了什么?(迁移)
- 提示:回忆浏览器里"谁在开车",以及校验在哪一端执行