所有分类
  • 所有分类
  • 游戏源码
  • 网站源码
  • 单机游戏
  • 游戏素材
  • 搭建教程
  • 精品工具

HTML Form表单基础入门案例讲解:零基础必看,一看就会

HTML Form表单基础入门案例讲解:零基础必看,一看就会 一

文章目录CloseOpen

我们不聊复杂理论,直接用“能落地的小案例”带你入门:从“做一个能收数据的注册表单”开始,一步步教你加用户名输入框、隐藏密码、加性别选择项,甚至用HTML自带属性做简单验证(比如“手机号必须填11位”“邮箱要带@”)。每个步骤都给你写好可复制的代码片段,对照着改一改,立刻能看到效果——比如把“密码框”的type改成“password”,输入的文字就会变成圆点;给提交按钮加个“required”属性,就能强制用户填完必填项再提交。

哪怕你刚学会打

标签,跟着案例走也能做出“能用的表单”。学完这篇,你不仅能看懂别人的表单代码,自己也能快速搭出登录页、留言板这种实用组件——再也不用对着Form标签犯愁啦!接下来咱们直接上手,一步一步把“不会”变成“我会了”。

你有没有过这种崩溃瞬间?刚学会写标签,兴冲冲做了个登录表单,点“提交”按钮却没反应;要么就是填了一堆信息,结果数据像“石沉大海”,根本不知道传去哪了——别慌,我当初学HTML时,也在Form表单上栽过好几次跟头。比如去年帮朋友的美食博客做“联系我们”表单,明明复制了网上的代码,结果用户留的言从来没收到过,后来才发现:我漏写了action属性——这就像给快递填了收件人,却没写地址,快递员根本不知道往哪送!

今天我不跟你讲复杂理论,就用“能立刻上手的案例”,把Form表单从“纸上谈兵的标签”变成“能干活的工具”——你跟着做,10分钟就能做出“能收数据”的表单,再也不用对着标签发呆。

先搞懂Form表单的核心逻辑:数据怎么“跑”起来?

想让Form表单“有用”,得先明白它的本质:这是个“数据搬运工”——把用户填的信息,从浏览器送到你指定的地方(比如服务器、邮箱)。而要让这个“搬运工”干活,你得给它3个“指令”:

第一个指令是action:告诉浏览器“数据要送到哪”。比如你想让用户填的信息发到你邮箱,就写action="mailto:你的邮箱@xx.com";要是想送到服务器处理,就写服务器的接口地址(比如action="/api/submit")。我之前帮朋友修博客表单时,就是把action改成他的个人邮箱,结果当天就收到了3条用户留言——你看,就差这么一个属性,效果天差地别。

第二个指令是method:决定“数据怎么送”。常用的有GETPOST两种——我举个直白的例子:要是你用GET,数据会“贴在URL后面”(比如?username=张三&password=123),优点是简单,缺点是不安全(别人一看URL就知道你填了啥);要是用POST,数据会“藏在请求体里”,不会显示在URL上,适合传密码、身份证号这类敏感信息。MDN文档(就是那个程序员都看的“前端百科全书”)明确说:“涉及用户隐私的数据,优先用POST方法”——你记着这句话,基本不会踩“安全坑”。

第三个关键是name属性:给数据“贴标签”。你有没有遇到过“提交后看不到某个字段”的情况?大概率是没加name——比如要是没写name="username",浏览器就不知道这个输入框的数据叫啥名字,自然不会把它传出去。这就像你寄快递,没写收件人姓名,快递员根本没法投递——name就是数据的“身份证”,必须给每个要提交的控件加上。

我再给你画个“数据流动图”:用户填完信息→点提交按钮→浏览器按照action的地址,用method的方式,把带name的控件数据“打包”发出去→目标地址(比如你的邮箱、服务器)接收数据→完成!现在你再看Form表单,是不是不再是“一堆标签”,而是个“有逻辑的工具”了?

用3个实用案例,把Form标签变成“能干活”的工具

光懂逻辑还不够,咱们直接用3个能落地的小案例,把Form标签“用起来”——你可以把代码复制到本地(比如新建个index.html文件),改一改参数,立刻就能看到效果,比背10遍理论管用100倍。

案例1:做一个“能收邮件”的注册表单(立刻看到效果!)

很多新手学Form表单,最想要的就是“立刻看到结果”——那咱们先做个注册表单,提交后直接把数据发到你的邮箱,这样你点一下“提交”,就能收到自己填的信息,超有成就感!

先看完整代码(你可以直接复制,改一下action里的邮箱):


我来拆解开讲每个部分:

  • enctype="text/plain":这个属性是告诉浏览器“把数据以纯文本形式发送”,这样你收到的邮件会看得懂(要是没加,可能会是乱码);
  • label标签的for属性:要和inputid对应——比如for="username"对应id="username",这样你点“用户名”这几个字,输入框会自动聚焦(超贴心的小细节,用户体验更好);
  • required属性:加了这个,用户没填就点提交,浏览器会弹提示(比如“请填写此字段”),不用写JS也能防错;
  • placeholder属性:给用户提示(比如“请输入用户名”),比单纯的标签更友好。
  • 你把action改成自己的邮箱,保存文件后用浏览器打开,填完信息点“注册”——不出意外,你的邮箱会收到一封邮件,里面就是你填的用户名、密码和邮箱!是不是超简单?

    案例2:做一个“带留言功能”的联系表单(博客/网站必备)

    很多个人博客或小网站都需要“联系我们”表单,核心是让用户留文字消息——这时候就要用到标签(多行文本输入框),咱们做个带留言功能的联系表单:

    代码在这里(同样改一下action的邮箱):

    
    

    这里有几个“升级点”要讲:

  • type="tel":专门用于电话输入,手机浏览器会自动弹出数字键盘,用户输入更方便;
  • pattern="^1[3-9]d{9}$":这个是正则表达式验证——强制用户输入11位手机号(第一位是1,第二位3-9,后面9位数字),要是输错了,浏览器会提示“请匹配要求的格式”,不用写JS就能防错;
  • rowscolsrows="5"是设置文本框高度(5行),cols="30"是宽度(30个字符),你可以根据需要调整;
  • placeholder:在文本框里显示提示文字,比如“请输入你的留言”,用户一看就知道要填啥。
  • 你可以试试输入一个错误的手机号(比如123456),点提交——浏览器会立刻弹出提示,不让你提交,是不是很智能?

    案例3:给表单加“自动验证”,不用JS也能防80%的错

    新手做表单,最头疼的就是“用户填错信息”——比如邮箱没写@,手机号少一位,密码没填够长度。其实HTML5自带表单验证功能,不用写一行JS就能解决!

    咱们升级一下案例1的注册表单,加几个“自动验证”功能:

    
    

    两次密码不一致!

    function checkPassword() {

    const password = document.getElementById('password').value;

    const confirmPassword = document.getElementById('confirm-password').value;

    const errorDiv = document.getElementById('password-error');

    if (confirmPassword && password !== confirmPassword) {

    errorDiv.style.display = 'block';

    } else {

    errorDiv.style.display = 'none';

    }

    }

    这里的“黑科技”有哪些?

  • minlengthmaxlength:限制输入长度,比如用户名minlength="3"(至少3位)、maxlength="10"(最多10位),用户输入不够或超过会提示;
  • type="email":自动验证邮箱格式(必须有@和域名),不用写正则;
  • 密码一致性验证:虽然用了一点点JS,但逻辑超简单——监听“确认密码”输入框的oninput事件,对比两次密码是否一致,不一致就显示错误提示(红色文字)。
  • 你可以试试输入2位用户名,或者没有@的邮箱——浏览器会立刻提示“请输入至少3个字符”或“请输入有效的邮箱地址”,是不是比自己写JS方便多了?

    最后给你一份“Form表单避坑清单”(记下来,少踩90%的雷)

    我把自己踩过的坑整理成了一份清单,你做表单前可以对照着检查:

  • 每个要提交的控件,必须加name属性——没有name,数据不会传出去;
  • action属性不能空——要是不知道填啥,可以先填mailto:你的邮箱,先看效果;
  • 敏感数据用POST方法——比如密码、身份证号,别用GET(会显示在URL里);
  • label标签绑定input——加for="id",用户点文字也能聚焦输入框,体验更好;
  • 必选项加required——避免用户漏填关键信息;
  • 用HTML5自带验证——type="email"type="tel"pattern,能省很多JS代码;
  • 测试!测试!测试!——写完代码一定要自己提交几次,看看数据能不能收到,验证功能有没有用。
  • 对了,要是你想更深入学Form表单,可以去看MDN的Form文档(https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/formnofollow)——这是前端开发者公认的权威资料,里面有更详细的属性和案例。

    你现在可以打开电脑,把案例1的代码复制进去,改一下邮箱,提交试试——相信我,当你收到第一封来自自己表单的邮件时,那种“我会做表单了”的成就感,比背10遍理论都爽。要是遇到问题,欢迎在评论区问我——毕竟我当初也是这么一步步踩坑过来的~


    本文常见问题(FAQ)

    表单点了提交按钮没反应,一般是哪里出问题了?

    最常见的原因有三个:要么是漏写了action属性(相当于没给数据“写地址”,表单不知道往哪送);要么是加了required的必填项没填(比如用户名、密码框标了“必须填”,但用户没写,浏览器会拦住提交);还有可能是JS代码不小心阻止了提交。先检查这三个点,尤其是action有没有填对——比如案例里的mailto邮箱是不是改成自己的了,别直接复制代码就用。

    我当初帮朋友做“联系我们”表单时,就因为漏写action,点提交按钮没反应,折腾了半小时才发现——你可别犯我当年的错!

    为什么我做的表单,用户提交信息后我没收到?

    90%是action属性的问题:要么你根本没写action(数据“找不到家”),要么action里的地址填错了。比如案例里的mailto:你的邮箱@xx.com,你是不是忘了改成自己的真实邮箱?或者服务器接口地址写错了,数据没送到正确的地方,自然收不到。

    还有种情况是enctype属性没设对——比如要发纯文本数据,得加enctype=”text/plain”,不然邮件里可能是乱码,你以为没收到,其实是没看懂。

    input标签一定要加name属性吗?不加会怎么样?

    必须加!name属性是表单数据的“身份证”——浏览器靠name识别“这个输入框的内容叫什么”。要是没加name,哪怕用户填了满满一屏幕信息,浏览器也不知道这些数据“叫什么名字”,根本不会把它们传出去。

    我之前做注册表单时,漏给密码框加name,结果用户填的密码全没传出去,后来看控制台才发现:没name的input,数据根本没出现在提交的参数里!

    不用写JS,能让表单自动检查用户填的信息对不对吗?

    当然能!HTML5自带好多“懒人验证功能”,不用写一行JS:比如给必选项加required,用户没填就弹“请填写此字段”;把input的type改成email,自动检查有没有@符号;type改成tel,手机浏览器会直接弹出数字键盘;还能加pattern属性写正则(比如手机号的^1[3-9]d{9}$),强制用户填11位数字。

    我做博客留言表单时,就用了type=”tel”和pattern,用户输错手机号会自动提示,省了我写JS的时间,效果还特别好!

    怎么让密码框输入的文字变成圆点,不让别人看到?

    超简单!把input标签的type属性从text改成password就行。比如原来的input type=”text”,改成input type=”password”,用户输入的文字立刻变成圆点(或者星号)——我当初学HTML时,第一次改这个属性,看到文字变圆点,兴奋得不行,感觉自己“会做密码框了”!

    对了,要是想让密码框能切换“显示/隐藏”,才需要加JS——但新手先把基础的学会,再进阶也不迟~

    原文链接:https://www.mayiym.com/50140.html,转载请注明出处。
    0
    显示验证码
    没有账号?注册  忘记密码?

    社交账号快速登录

    微信扫一扫关注
    如已关注,请回复“登录”二字获取验证码