22个Input类型,让你少写80%的表单代码

更新日期: 2026-03-04 阅读: 22 标签: 表单

每次写表单都像受刑?为了一个校验,动不动就引入一大坨JS库。其实html里的<input>早就进化了,自带一堆功能。今天我把22个类型全给你列出来,能用原生的就别自己写JS。


01 文本和密码类

type="text"

最常用的单行文本输入框。

<input type="text" name="username" placeholder="输入用户名">

type="password"

密码输入框,输入的内容会变成黑点。

<input type="password" name="password" placeholder="输入密码">

type="search"

搜索框。有些浏览器会自带一个"X"按钮,点一下就能清空内容。

<input type="search" name="query" placeholder="搜索...">

type="hidden"

隐藏字段。用户看不见,但提交表单时会一起发出去。适合存用户ID、token这些。

<input type="hidden" name="user_id" value="12345">


02 数字类

type="number"

只能输入数字。可以设最小值、最大值、步长。

<input type="number" name="quantity" min="1" max="100" step="1">

手机上会弹出数字键盘。

type="range"

滑块。调音量、调亮度用这个。

<input type="range" name="volume" min="0" max="100" step="5" value="50">

可以自己用css改样式。


03 特殊格式类

type="email"

邮箱输入。提交时会自动检查格式对不对。手机上会弹出带"@"和".com"的键盘。

<input type="email" name="email" placeholder="your@email.com">

type="tel"

电话号码输入。不会自动校验格式,但手机会弹出数字键盘。

<input type="tel" name="phone" placeholder="(123) 456-7890">

type="url"

网址输入。会检查格式,手机键盘会弹出"/"和".com"。

<input type="url" name="website" placeholder="https://example.com">


04 时间日期类

type="date"

日期选择器。浏览器会弹出日历,不用自己写日期组件。

<input type="date" name="birthday" min="1900-01-01" max="2025-12-31">

type="time"

时间选择器。

<input type="time" name="appointment" min="09:00" max="18:00">

type="datetime-local"

日期和时间一起选。

<input type="datetime-local" name="meeting">

type="month"

选年份和月份。适合信用卡有效期、月度报表。

<input type="month" name="expiry" min="2025-01">

type="week"

选一年中的第几周。排班表、打卡系统能用上。

<input type="week" name="week">


05 选择类

type="checkbox"

多选框。可以同时选好几个。

<input type="checkbox" name="subscribe" id="subscribe">
<label for="subscribe">订阅邮件</label>

type="radio"

单选框。同一组里只能选一个。用相同的name把它们归为一组。

<input type="radio" name="size" value="small" id="small">
<label for="small">小杯</label>

<input type="radio" name="size" value="medium" id="medium">
<label for="medium">中杯</label>

<input type="radio" name="size" value="large" id="large">
<label for="large">大杯</label>

type="color"

颜色选择器。点一下弹出调色板。

<input type="color" name="theme-color" value="#4f46e5">


06 文件类

type="file"

文件上传。用accept限制文件类型,加multiple可以选多个文件。

<input type="file" name="document" accept=".pdf,.doc,.docx">
<input type="file" name="photos" accept="image/*" multiple>

capture属性

在手机上直接打开相机拍照。

<input type="file" accept="image/*" capture="environment">


07 按钮类

type="submit"

提交表单的按钮。

<input type="submit" value="立即注册">

type="reset"

清空表单。小心用,用户点错会生气。

<input type="reset" value="清空表单">

type="button"

普通按钮,没特殊功能,等JS来绑事件。

<input type="button" value="点我" onclick="doSomething()">

type="image"

用图片当提交按钮。会把点击的坐标也发给后台。

<input type="image" src="submit-icon.png" alt="提交">


08 让表单更好用的属性

required

必填。不填不让提交。

<input type="email" name="email" required>

placeholder

输入框里的灰色提示文字。

<input type="text" placeholder="输入你的名字">

pattern

用正则表达式限制输入。

<input type="text" pattern="[A-Za-z]{3,}" title="至少3个字母">

minlength / maxlength

限制最少和最多字符数。

<input type="text" minlength="3" maxlength="50">

readonly

只读,不能改但能提交。

<input type="text" value="你改不了我" readonly>

disabled

禁用,不能改也不会提交。

<input type="text" value="灰的,用不了" disabled>

autocomplete

控制浏览器自动填充。

<input type="email" name="email" autocomplete="email">

autofocus

页面加载完光标自动落到这个输入框。

<input type="text" autofocus>

list + datalist

原生的联想输入。不用JS就能实现下拉提示。

<input type="text" list="browsers">
<datalist id="browsers">
  <option value="Chrome">
  <option value="Firefox">
  <option value="Safari">
</datalist>

inputmode

控制手机弹出什么键盘,不影响输入内容格式。

<input type="text" inputmode="numeric">

multiple

允许选多个文件或输多个邮箱。

<input type="file" multiple>

accept

限制文件类型。

<input type="file" accept="image/png, image/jpeg">


09 写在最后

这22个<input>类型和一堆属性,大部分你每天都在用,有些可能还没碰过。能用原生就用原生。浏览器把这些都做好了,不用自己写JS去模拟。省代码、省时间、用户体验还好。

下次写表单的时候,先翻翻这个列表,看看有没有原生就能搞定的。

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://fly63.com/article/detial/13366

相关推荐

js如何获取checkbox被选中的值?

通过复选框的name属性,遍历后将被选中的复选框的值输出:checkbox[index].nextSibling.nodeValue: 获取的是checkbox中标签包裹的文本值,建立一个数组,使用push 方法将被选中的元素保存到数组

如何禁止浏览器自动保存密码表单?

为了帐号和密码安全,作为程序员,如何不让浏览器自动记住密码呢?浏览器有时总是自动填充用户和密码,怎么屏蔽呢? 方法一:在输入框上添加 onfocus=this.type=password 输入框获得焦点时改变输入框格式为密码框

AntDesign表单的理解与使用

虽然 react 没有内置的表单验证逻辑,但是我们可以使用 react 组件库 AntDesign 中的表单组件 Form 来实现这一需求。具体地, AntDesign 中的表单组件 Form 与表单域 Form.Item(用于包裹任意输入控制的容器)配合使用:

在HTML中限制input 输入框只能输入纯数字

使用 onkeyup 事件,有 bug ,那就是在中文输入法状态下,输入汉字之后直接回车,会直接输入字母,使用 onchange 事件,在输入内容后,只有 input 丧失焦点时才会得到结果,并不能在输入时就做出响应,使用 oninput 事件,完美的解决了以上两种问题

vue2表单验证组件_vee-validate的使用教程

vee-validate基于vue2的表单验证组件,这篇文章主要讲解它的安装,引用,基础使用,内置的校验规则,自定义校验规则。Validator是以$validator被组件自动注入到Vue实例的,同时也可以独立的进行调用

Html5中input新增的表单元素和属性介绍。

input标签主要用于Web表单的创建交互,以便接受来自用户的数据。 我们通过更改type属性的值,来实现不同的输入类型。这篇文章主要讲解html5中新增的表单属性。

javascript实现form表单onsubmit提交前验证

可以使用form表单的onsubmit方法,在提交表单之前,对表单或者网页中的数据进行检验。onsubmit指定的方法返回true,则提交数据;返回false不提交数据。

input输入限制只能为数字

input输入限制只能为数字的2种方法,通过onkeypress事件和onkeyup事件,输不上任何非数字字符。加上正则匹配不能输入非数字字符就可以了

css实现修改浏览器自动填充表单的默认样式

当表单中存在input[password]的时候,采用submit方式提交。就会触发浏览器自动填充表单。比如chrome自动填充后,淡黄色输入框代替了背景样式,看起来有些怪异。input文本框是使用图片背景的

谷歌浏览器禁止表单自动填充

在项目开发期间发现谷歌浏览器有记住密码的功能,该功能有个问题就是一遇到input type=password就开始自动填充,同一个账户还好,就是bug了。找了一堆解决方案终于找到了办法,下面分享一下解决方案。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!