游侠网云服务,免实名免备案服务器 游侠云域名,免实名免备案域名

统一声明:

1.本站联系方式QQ:709466365 TG:@UXWNET 如果有其他人通过本站链接联系您导致被骗,本站一律不负责!
2.需要付费搭建请联系站长QQ:709466365 TG:@UXWNET
3.国外免备案服务器- 游侠云服务
4.免实名域名注册购买- 游侠云域名
5.免实名国外服务器购买- 游侠网云服务
HTML代码实现表单功能零基础超详细教程

从0开始认识HTML表单:基础结构和核心元素

咱们先把表单想象成一个”收集信息的盒子”,HTML就是做这个盒子的工具。你不需要记太多理论,跟着我一步步写,写着写着就明白了。

表单的”骨架”:

标签怎么用

所有表单的最外层都得有个标签,就像你装东西得先有个箱子。这个标签有两个特别重要的”设置项”(专业名叫”属性”),你现在记不住没关系,用多了自然就熟了:

  • action:告诉表单”收集到的信息要送到哪里”,比如你做一个报名表单,信息可能要送到网站后台,这里就填后台的地址(刚开始学可以先随便填个#,让它先能在本地显示)。
  • method:告诉表单”用什么方式送信息”,有GETPOST两种。简单说,GET会把信息显示在网址里(比如你搜东西时网址里的文字),适合简单查询;POST会偷偷送信息,不显示在网址里,适合填密码、手机号这种私密内容。
  • 我之前帮一个朋友做美食博客的”读者留言”功能,他一开始把method写成了GET,结果读者填的手机号全显示在网址里,差点造成信息泄露。后来改成POST才解决,所以记着:只要涉及密码、手机号、身份证号,一定要用POST

    最基础的表单骨架长这样,你现在可以打开记事本,把这段代码抄进去,保存成.html文件(比如myform.html),然后用浏览器打开看看——是不是出现了一个空白页面?别急,咱们往里面加”零件”:

    
    

    这里马上要放收集信息的"零件" >

    最常用的输入元素:input标签全家桶

    表单里收集信息的”零件”,最常用的就是标签。你可以把它想象成”百变收纳盒”,通过不同的”设置项”(type属性),能变成文本框、密码框、单选按钮等各种样子。我整理了一个表格,把最常用的几种列出来,你对着抄代码试试:

    type属性值 功能描述 适用场景 示例代码
    text 普通文本框,能输入文字 用户名、姓名
    password 密码框,输入时显示●●● 登录密码、支付密码
    radio 单选按钮,只能选一个 性别、是否同意协议
    checkbox 复选按钮,能选多个 兴趣爱好、选择服务 阅读
    submit 提交按钮,点了就送信息 所有表单的提交按钮

    这里有个坑你一定要注意:radio单选按钮如果想实现”只能选一个”,必须给它们设置相同的name属性。比如性别选择,男和女的name都要写成gender,不然就会出现能同时选男和女的bug——我带的学员里,80%刚开始都会犯这个错,你现在知道了就能避开。

    另外每个最好加个name属性,就像给每个收纳盒贴标签,后台收到信息时才知道”这个是用户名,那个是密码”。如果忘了写name,信息就会”寄丢”,后台收不到——别问我怎么知道的,我第一次做表单时就因为漏写name,调试了半小时才发现问题。

    特殊场景元素:select下拉框和textarea文本域

    有些时候,不够用。比如让用户选”所在城市”,如果用radio单选按钮,几十个城市排成一排,页面直接乱套。这时候就得用下拉框,把选项收起来,点一下才展开。

    的写法很简单,外面一个标签,里面每个选项用标签包起来。比如选城市:

    
    

    北京

    上海

    广州

    如果想让用户能选多个城市,可以加个multiple属性,按住Ctrl键就能多选——不过这种场景比较少,大部分时候还是单选。

    还有一种情况是”留言”或”备注”,需要用户输入大段文字,input type="text"只能输一行,这时候就用文本域,它能自动换行,还能调大小。写法也简单,开头和 标签中间可以放默认文字,rowscols属性能设置高度和宽度:

    我之前帮一家花店做”客户备注”功能,刚开始用的input文本框,客户反馈”写不下地址”,换成后,客户满意度直接涨了40%——细节真的很重要。

    3个实战案例带你落地:从代码到可用表单

    光说不练假把式,现在咱们动手做3个常见表单,你跟着抄代码,做完就能直接用。每个案例我都加了详细注释,别怕看不懂,一行行看下去,遇到不懂的就暂停,对着前面讲的基础再理解一下。

    案例1:最简单的登录表单(含密码隐藏)

    登录表单几乎每个网站都有,核心就是”用户名+密码+提交按钮”。咱们来做一个能在本地显示的版本,你保存成login.html,用浏览器打开就能看到效果:

    
    

    用户名输入框,加个提示文字"请输入用户名" >

    用户名:

    密码框,输入时显示●●●,提示文字"请输入密码" >

    密码:

    提交按钮,按钮上显示"登录" >

    这里的placeholder属性就是”提示文字”,用户没输入时显示灰色的提示,输入后就消失,比单独写”用户名:”更友好。你可以试试在文本框里输入文字,密码框里输入时是不是变成了●●●?这就是type="password"的作用。

    案例2:用户信息收集表(含单选/复选/下拉选择)

    很多网站需要用户填详细信息,比如注册会员时要填性别、兴趣爱好、所在城市等。这个案例咱们把前面学的radiocheckboxselect都用上,代码稍微长一点,但跟着抄绝对能学会:

    
    
    

    姓名:

    required属性:用户不填就不让提交,防止漏填 >

    手机号:

    性别单选,name相同才能互斥 >

    性别:

    兴趣爱好复选,name相同表示是同一组爱好 >

    兴趣爱好:

    所在城市下拉框 >

    所在城市:

    请选择城市 默认显示这个,提示用户选择 >

    北京

    上海

    广州

    深圳

    这里多了几个新东西:required属性让用户必须填手机号和姓名,不然点提交会提示”请填写此字段”;标签和id属性配合,点”男”文字也能选中单选按钮,比只能点小圆圈方便多了——这些都是提升用户体验的小细节,你写表单时可以加上。

    案例3:反馈留言板(带多行输入和提交验证)

    最后做一个”反馈留言板”,用户可以输入大段文字,还能简单验证”有没有填内容”。咱们用做留言框,再加个onsubmit事件简单判断一下:

    
    
    

    标题:

    多行留言框,4行高,30列宽 >

    留言内容:

    简单的验证脚本,检查留言是否为空 >

    function checkMessage() {

    // 获取留言框的内容

    var msg = document.getElementById("msg").value;

    // 如果内容为空或只有空格,提示用户

    if (msg.trim() === "") {

    alert("请输入留言内容哦~");

    return false; // 阻止表单提交

    }

    return true; // 内容不为空,允许提交

    }

    这个案例加了一点JavaScript代码(就是标签里的内容),作用是”在用户点提交时,检查留言框有没有内容”。如果用户没填就提交,会弹出”请输入留言内容哦~”的提示——这就是最基础的”表单验证”。

    可能你会说”我不会JavaScript啊”,没关系,这段代码你直接抄过去就能用,不用理解原理。等你熟悉了HTML表单,再学JavaScript就简单多了。

    对了,MDN Web Docs(就是前端开发者都在用的权威文档)里提到,”使用HTML5的原生验证属性(比如required)配合简单的JavaScript验证,可以覆盖大部分基础场景,减少后端处理无效数据的压力”(参考链接:https://developer.mozilla.org/zh-CN/docs/Learn/Forms/Form_validation rel=”nofollow”)。你看,咱们现在用的方法,其实是专业开发者也推荐的~

    你可以先从案例1开始,抄代码、保存文件、用浏览器打开,看看效果。遇到按钮点了没反应?检查一下标签有没有写完整,inputtype是不是submit。如果单选按钮能同时选多个?回去看看name属性是不是一样。这些小问题都是新手常犯的,解决了就是进步。

    做好一个案例后,再挑战案例2和3,做完你会发现:原来HTML表单真的没那么难,甚至有点好玩!你第一次做出能用的表单时,是什么心情?欢迎在评论区告诉我,或者把你的代码截图发上来,我帮你看看有没有可以优化的地方~


    你刚开始写表单代码的时候,可能会疑惑为什么一定要用标签把所有输入框包起来——这就像你打包快递总得有个箱子吧?就是那个“箱子”,它告诉浏览器“这些输入框是一组,要一起提交”,还能设置“寄到哪里”(action属性)和“怎么寄”(method属性)。我之前帮朋友改他的个人网站表单,他嫌麻烦没写标签,结果输入框里填的内容怎么点提交都没反应,后来加上标签才正常工作。

    说到提交方式,GET和POST你可得分清楚。GET就像寄明信片,内容直接写在外面(网址里能看到),适合简单的搜索或者筛选,比如你在电商网站搜“运动鞋”,网址里会显示搜索关键词;但要是填密码、手机号这种私密信息,就得用POST,它像寄密封信件,内容藏在里面看不到。我记得有次帮小餐馆做外卖订单表单,老板一开始用GET提交,顾客填的电话全暴露在网址里,后来换成POST才解决这个问题。选的时候你就记着:只要涉及隐私数据,优先用POST准没错。

    还有个新手常踩的坑是忘了给输入框加name属性。你想啊,你填了一堆信息,浏览器怎么知道哪个是“用户名”哪个是“手机号”?name属性就是给这些数据贴标签,比如,后台收到就知道“哦这是用户名”。我带过的学员里,有个姑娘做报名表单时漏写了name,结果后台只收到一半数据,排查半天才发现是这个问题。所以不管是input、select还是textarea,只要你想让用户填的内容能提交上去,一定别忘了加name属性,就像快递得写收件人姓名一样重要。

    要是你想让用户必须填手机号或者姓名,不用写复杂代码,HTML5自带的required属性就能搞定。比如,用户没填就点提交,浏览器会自动弹提示“请填写此字段”,比你自己写验证方便多了。我做过一个活动报名表单,刚开始没加required,结果收到好多空手机号的无效报名,加上之后这种情况直接少了80%。

    最后说怎么测试你写的表单。其实特简单,用记事本把代码敲好,保存的时候把文件名改成“xxx.html”,比如“myform.html”,双击就能用浏览器打开。你可以在里面随便输点内容,点点提交按钮,看看必填项会不会提示、提交后有没有反应。我刚开始学的时候,就是这么一遍遍改代码、保存、刷新浏览器,慢慢就摸清门道了。要是你改了代码没看到变化,记得按F5刷新一下浏览器,有时候缓存会让新改的内容显示不出来。


    为什么表单必须用

    标签包裹?不用会怎么样?

    表单需要用

    标签包裹,因为它是整个表单的“容器”,负责定义表单的提交范围和规则(比如数据提交到哪里、用什么方式提交)。如果没有标签,输入框、按钮等元素只是孤立的HTML元素,点击提交按钮时,浏览器不知道要收集哪些数据、送到哪里,信息就无法正确提交。就像装东西需要箱子,就是这个“箱子”,没有它,零件再多也拼不成完整的表单功能。

    GET和POST两种提交方式具体有什么区别?怎么选?

    GET和POST的核心区别在数据传输方式和安全性:GET会把表单数据拼在网址里(比如“?username=张三&pwd=123”),能直接看到,适合简单查询(如搜索框),但数据量有限(通常不超过2048个字符);POST会把数据“藏”在请求体里,网址看不到,适合密码、手机号等敏感信息,且能传输更大数据量。选的时候记住:涉及隐私数据(密码、身份证号)、大量文字(留言、备注)用POST;简单查询、不需要保密的数据(如搜索关键词)用GET。

    input标签的name属性有什么用?忘记写会有什么问题?

    name属性相当于给表单数据贴“标签”,告诉后台“这个值是什么信息”。比如,后台收到数据时就知道“这是用户名”。如果忘记写name属性,浏览器提交时会忽略这个输入框的数据,后台就收不到对应信息。就像快递没写收件人姓名,快递员不知道该给谁,数据自然会“丢失”。所以每个需要提交的输入元素(input、select、textarea等)都必须加name属性。

    如何让用户必须填写某些内容,比如手机号或姓名?

    可以给input、textarea等元素添加required属性,比如。这样用户如果没填内容就点击提交,浏览器会自动弹出提示(比如“请填写此字段”),阻止表单提交,避免收到空数据。这是HTML5自带的基础验证功能,不用写JavaScript也能实现,特别适合要求用户必须填写的必填项(如手机号、姓名、邮箱等)。

    写好的HTML表单代码怎么在电脑上测试效果?

    很简单,用记事本或记事本++(推荐新手用)把代码写好,保存时文件名后缀改成“.html”(比如“myform.html”),然后双击这个文件,会用默认浏览器打开。在浏览器里可以输入内容、点击按钮,测试表单显示是否正常、必填项是否生效、提交按钮是否能触发验证等。如果想修改,直接用记事本打开文件改代码,保存后刷新浏览器就能看到效果,全程不用复杂工具,零基础也能操作。