type 决定键盘、控件和校验规则

同一份数据用不同 type,手机上弹出的键盘完全不同。写错 type 不只是难看,还会让用户输入更慢。

text
email
password
number 只能输数字,带上下箭头
tel
url
search
date 原生日期选择器
time
range
color
checkbox / radio
file
hidden页面上看不见,但会随表单提交
三个容易漏的属性

autocomplete:让浏览器/密码管理器自动填充。常用值 name、email、tel、username、new-password、current-password、one-time-code(短信验证码)、off。

inputmode:不改校验,只改手机键盘。纯数字但不是 number(如验证码、邮编)就写 inputmode="numeric"。

placeholder 不能当标签用:它一输入就消失,对比度也常常不达标。标题永远用 <label>。

读写控件的值要用对应的属性

7

JS 里读值:el.value(复选框读 el.checked,文件读 el.files);写值同样赋 el.value = …。设 el.attributes.value.value = x 是没用的——value 属性只是初始值。