HTML(5)表单元素以及对各个表单元素的name、value属性的理解

我在学习表单元素的时候感觉很混乱,特别是 name value这两个属性,没有真正理解它们是干什么的,所以需要梳理一下。

HTML表单元素主要有 <form> <input> <select> <textarea> <button> <fieldset> <legend>
HTML5新增的表单元素有三个<datalist> <keygen> <output>

下面梳理一下这些表单元素的用法并指出各元素的name、value属性含义
1. <form>元素

<form>元素定义HTML表单,收集用户输入。

属性主要有 actionmethod

action定义在提交表单时执行的动作,向服务器提交表单的通常做法是使用提交按钮(type为submit<input>元素);如果省略该属性,则action会被设置为当前页面

method属性规定在提交表单时所用的HTTP方法(HTTP方法有GET和POST两种,这里只说一下两者的主要区别:GET方法会使表单数据在页面地址栏是可见的,而POST方法不可见,所以POST方法安全性更佳)。

<form action="action_page.php" method="get">
    form elements...
</form>
2. <input>元素

<input>元素很常用(为行内元素,在“去哪儿”找实习面试的时候被问到过,当时都答错......),根据不同的type属性,可以变化为多种形态。

type的取值有text radio checkbox password submit button;HTML5又新增了type类型email url search number range color date pickers(date month week...),这些新类型提供了更好的输入控制和验证。

对于<input>元素,除了type属性,常用的就是namevalue属性:
name属性----想要被正确地提交,每个输入字段必须设置一个name属性。
value属性----为<input>元素设定值,对于不同的typevalue属性的含义也不同。

type="submit"、"button"、"reset"    ——定义按钮上显示的文本
type="text"、"password"、"hidden"   ——定义输入字段的初始值
type="radio"、"checkbox"、"image"   ——定义与输入相关联的值
type="file"                        ——无法与value属性一起使用
这里只具体介绍typeradio checkbox<input>元素。
  • radio定义单选钮,允许用户在有限数量的选项中选择一个。
<form action="action_page.php" method="get">
     <fieldset>     <!--<fieldset>元素用于组合表单中相关数据;<legend>元素用于为<fieldset>元素定义标题-->
          <legend>你喜欢谁?</legend><br>
          <input type="radio" name="star" value="杨洋">杨洋<br>
          <input type="radio" name="star" value="许嵩">许嵩<br>
          <input type="radio" name="star" value="吴彦祖">吴彦祖<br>
          <input type="submit">
      </fieldset>
</form>

效果图如下



当选择“许嵩”,点击“提交”按钮后,看到页面地址栏里表单数据的内容如下图所示。

注意:单选钮的各个name属性值要完全一致,否则会不只选中一个选项

  • checkbox是复选框,允许用户在有限数量的选项中选择零个或多个选项。
<form action="" method="get">
     <fieldset>
          <legend>你喜欢谁?</legend><br>
          <input type="checkbox" name="star" value="杨洋">杨洋<br>
          <input type="checkbox" name="star" value="许嵩">许嵩<br>
          <input type="checkbox" name="star" value="吴彦祖">吴彦祖<br>
          <input type="submit">
     </fieldset>
</form>

效果图如下


当我全选时(好像暴露了什么),namevalue值表现如下

3. <select>元素- -下拉列表

定义下拉列表,需要配合<option>使用,<option>定义待选择的选项;通常会把首个选项显示为被选选项;可通过selected属性来定义预定义选项。

<form action="action_page.php" method="get">
      <select name="fruits">
            <option value="apple">apple</apple>
            <option value="pineapple">pineapple</apple>
            <option value="mango">mango</apple>
            <option value="grape">grape</apple>
       </select>
       <input type="submit">
</form>

效果图如下:


打开下拉列表,选择"mango"这一项,并点击"提交"按钮,因为method设置为了get,所以在地址栏中可看到数据:分别取自<select>中的name属性值和被选项的value属性值。

value的属性值是空的时候,会取<option>的内容值作为表单数据提交。

4. <textarea>元素

定义多行输入字段(文本域)

<form action="action_page.php" method="get">
       <textarea name="msg" rows="10" cols="30">Just Do It!</textarea>
       <input type="submit">
</form>

效果如下图


地址栏数据如下图所示。当文本域为空时,提交的表单数据也为空;改变文本域的值,再次提交,则表单数据也会相应的改变。


5. <button>元素

<button>元素的type属性有三个可能的值button submitreset;这里只介绍属性值button

typebutton时,定义可点击的按钮

<form action="action_page.php" method="get">
    <button type="button" onclick="alert('How are you  doing?')">click</button>
</form>

效果如下图


点击后出现


6. <datalist>元素

规定输入域的选项列表;需要配合<option>元素一起使用,该元素定义列表项;如需把datalist绑定到输入域,需要把输入域的list属性值设置为datalist的id值;<option>元素必须要设置value属性。

<form action="action_page.php" method="get">
        <input type="url" name="website" list="url_list">
        <datalist id="url_list">
            <option value="http://www.baidu.com"></option>
            <option value="http://www.google.com"></option>
            <option value="http://www.jianshu.com"></option>
            <option value="http://www.w3cschool.com"></option>
        </datalist>
        <input type="submit">
</form>

效果图如下


当选择第三项,并点击"提交"按钮后,地址栏数据如下

7. <keygen>元素

提供一种验证用户的可靠方法。

<keygen>元素是密钥对生成器(key-pair generator)。当提交表单时会生成两个键,一个是公钥,一个是私钥。私钥存储于客户端,公钥则被发送到服务器。公钥可用于之后验证用户的客户端证书。

目前浏览器对该元素糟糕的支持程度不足以使其成为有用的安全标准。

<form action="" method="get">
     <keygen name="security"></keygen>
     <input type="submit">
 </form>

效果图如下


点击第一项并提交后,地址栏的数据为

file:///C:/Users/wxf/Desktop/imooc/home/test4.html?security=MIICQDCCASgwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCiOHLvFmlmZKNDwqFZ8ie7mSP%2FmRRVSxhgtvH3ORHEoAl63sO9mZWVEPs8ZrcgCLW5z1TFGs9hadvhL%2BafxUs%2FN6lXYWDpoM7juZLuRDbK%2BdF4WAMWDbgX3NzK5fj2t2J5oMiLaBh8slUUByCAENCktHXeEBCs%2BuaFqxZN%2B458BBTz%2Fg%2BYoQ5AUj3jv0lzfwUZ46xxd2yUyUVYpnYy8PMUQMwV4vZ2hNQEzM%2BW7HKHkBDTD8OQFDwmSuizLq5DO34x%2BInnvS9lpiJOkUHCUdciYITtLS2lw45JZnjkuJdeWGSwXmBdboBix99u6jZ6NGEtTQ2Pb%2BqNQFeutzLzrEEpAgMBAAEWADANBgkqhkiG9w0BAQQFAAOCAQEAHe4OWmRmaxhQxUPQnwY9W8kWwMMtEKZJ%2B28qVmZILOiBUJWYDiEXo2VJy9fUUuOL7gdrlc1exPNRMOIQSK2n221foHJ%2BKWmecnZ9jVwWr46eHASrrRKUHDANePwDxrUQ0bxr26vdcpGPZBFlvqf5RehkATlrYtt3Aij9txjzE%2FNss4d%2BL%2BtAOyY4KdgHRTjmn8HdA9%2BDgflroHyQ8frO3jvprojyDX3Jhko5o6XxScXJDKX3QO51PLOPcVsJLBElU8QPKZybO9GpCuj36TvX74CxP22wtsGkuRAGeqOyjjyyGBmKio83b1HudL6KEh31T2xyntk6STyqO%2FlxEdIRpQ%3D%3D
8. <output>元素

用于不同类型的输出,如计算或脚本输出。

<form action="action_page.php" method="get" oninput="resCalc()">
        <input type="Number" id="num_a" value="3"> +1
        <input type="range" id="num_b" value="4" min="1" max="10">10 =
        <output id="result" ></output>
</form>
<script type="text/javascript">
    function resCalc(){
            numA=document.getElementById("num_a").value;
            numB=document.getElementById("num_b").value;
            document.getElementById("result").value=Number(numA)+Number(numB);      
    }           
</script>

效果如下图

通过总结对这些元素的认识更加深刻了,所以要经常整理!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,633评论 18 139
  • 表单基础知识 在HTML中,表单是由 元素来表示的,而在JS中,表单对应的则是HTMLFormElement类型。...
    oWSQo阅读 906评论 0 1
  • 1.动手 form 表单table 表格 2. <form>表单元素 1) 简述: 元素是块级元素,其开始标签和结...
    _Dot912阅读 2,012评论 2 8
  • 本人做php的,最近发现JS真的是博大精深啊,比PHP难.在HTML中,表单是由form元素来表示的,但是在jav...
    linfree阅读 2,142评论 3 17
  • form简介 是HTML中的一个元素,它表示文档中的一个区域,这个区域包含了交互控件,用于向web服务器提交信息。...
    七里之境阅读 1,323评论 0 1