表单
表单的输入类型
如文本框、单选按钮、复选框、下拉框等
<form action="/submit" method="post">
<label for="username">用户名:</label>
<input type="text" id="username" name="username" />
<input type="submit" value="提交" />
</form>
- name:表单项的字段标识
label
label 标签用于定义表单元素的标签文本。
- for 属性用于指定与该标签关联的表单控件的 id 属性
- 当用户点击 label 标签时,浏览器会自动将焦点转移到与之相关联的表单控件上
<label for="username">用户名:</label> <input type="text" id="username" name="username" />
input
属性
1、accept
属性,指定浏览器可以处理的 MIME 类型的列表,MIME 类型是标识文档类型的标准
<input type="file" accept=".jpg, .png" />
accept 可以接受的值有哪些?
2、autofocus
属性,自动聚焦
<input type="text" autofocus />
3、inputmode
属性,指定文本框中输入的内容属性,帮助浏览器优化输入体验,例如在移动端自动弹出合适的虚拟键盘
与 type 属性不同的是,inputmode 属性并不会改变浏览器对 input 的处理,它仅仅是决定如何展示键盘
<input type="text" inputmode="emial" />
可用类型:
选项 | 描述 |
---|---|
text | 默认值,使用用户本地区域设置的标准文本输入键盘 |
none | 无虚拟键盘 |
tel | 电话输入键盘 |
url | 优化网址输入 |
优化邮件地址输入 | |
numeric | 数字输入键盘 |
decimal | 小数输入键盘 |
search | 优化搜索输入 |
4、pattern
属性,指定文本框中输入内容的正则表达式。错误信息可以使用 title 属性自定义
<form action="">
<input name="username" pattern="[A-Za-z0-9]" title="error" />
<input type="submit" />
</form>
5、required
属性,指定表单元素是否必填,不会阻止用户提交空格或空白字符
<form action="">
<input text="text" required />
<input type="submit" />
</form>
6、autocomplete
属性,指定表单元素是否启用自动完成
<input autocomplete="off" />
可用类型:
选项 | 描述 |
---|---|
on | 默认值,表示启用自动完成功能 |
off | 表示禁用自动完成功能 |
name | 表示使用表单元素的 name 属性作为自动完成的关键字 |
最近输入的电子邮件地址 | |
username | 用户名 |
current-password | 密码 |
new-password | 新密码 |
tel | 电话号码 |
address-level1 | 国家或地区名称 |
address-level2 | 省份或州名称 |
address-level3 | 城市或地区名称 |
address-level4 | 街道名称 |
country | 国家名称 |
7、multiple
属性,指定表单元素是否允许多选,用于下拉列表、文件上传和复选框等
<input type="file" multiple />
8、readonly
属性,指定表单元素是否只读
<input type="text" readonly />
9、type
属性
选项 | 描述 |
---|---|
text | 单行文本输入框 |
password | 密码输入框(密码显示为*** ) |
radio | 单选框 |
checkbox | 复选框 |
file | 上传文件 |
button | 普通按钮 |
reset | 重置按钮(触发表单的 reset 事件) |
submit | 提交按钮(触发表单的 submit 事件) |
用于输入 email | |
url | 用于输入 url |
number | 专门用于 number |
range | 显示为滑动条,用于输入一定范围内的值 |
date | 选取日期和时间(还包含:month、week、time、datetime、datetime-local) |
color | 选取颜色 |
样式
outline: none;
取消 input、textarea 的聚焦边框resize: none;
禁止 textarea 可拖动
input {
outline: 2px solid #f00;
outline: none;
}
设置只读
- readonly
- disabled
- onfocus="this.blur()"
<input type="text" value="hello" readonly />
<input type="text" value="hello" disabled />
<input type="text" value="hello" onfocus="this.blur()" />
三种方式的区别:
- 使用 disabled 会使输入框变灰,不可输入,不可点击,可复制
- 使用 readonly 不可输入,可点击,不变灰,可复制
- onfocus="this.blur()"不可输入,不可点击,不变灰,不可复制
监听值变化
<input type="text" name="planLeave" readonly />
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
<script>
$("input[name='planLeave']")
.trigger('input')
.bind('input propertychange', function () {
alert('hehe');
});
</script>