有没有发现,自己在写模板的时候很少使用form元素,一来form和table总是那么傻傻分不清楚;二来form的特性理解不清楚,有了input、label来了直接就上,根本不用form(不知道有没有人和我一样)。因此,不得不再来针对form这个元素开个小灶。

追根溯源:

<form> 标签用于为用户输入创建 HTML 表单。表单能够包含input元素(元素由一个开始的标签和结束的标签组成,用来包含某些内容),比如文本字段、复选框、单选框、提交按钮等等,还可以包含textarea、fieldset、legend、label标签(如:<br/>本身既是开始标签也是结束标签,但不包含任何内容,所以这只是个标签)。主要用于向服务器传输数据。它是一个块元素。

条分缕析:

其实form本身还是很高大上的,首先,它是和服务器打交道的,其次,它统帅了旗下的所有表单标签。一般在页面中总会遇到一些个人信息的填写,这儿就是form的用武之地,它有两个重要属性:action(服务器的地址)、method(提交数据的方式)。当你填写完数据后点击提交,form就会携带者这些数据信息找服务器去了。

但是对于input这些表单标签来说,要不要form这个父元素都不是必须的,因为现在有了js,我们提交数据可以用脚本来完成,尤其是现在有了ajax这个异步交互的方式,因此,这样就造成了开篇说的对form陌生的结果。况且,有时候这个input标签不是为了提交数据使用的,它可能仅仅就是单纯的以信息输入的工具来使用。因此,不要在意识里产生form和input等是相互依赖的关系这样的想法。

具体在使用的时候该如何权衡,是用传统的submit方式提交,还是用js进行事件监听,它们之间有什么区别和优劣,数据提交的时候分别都发生了什么,用哪个更可靠,这。。。还需小生另番研究,下回分解。

关于form标签,你该知道的更多相关文章

  1. s:form标签

    2017-01-07 17:43:18 基本的用法 <!-- Action类必须有一个无参的构造器,因为在执行action方法之前,拦截器已经创建了一个"空"的Action对 ...

  2. 修改 jquery.validate.js 支持非form标签

    尝试使用markdown来写一篇blog,啦啦啦 源代码传送门:github 在特殊情况下我们使用jquery.validate.js对用户输入的内容做验证的时候,表单并不是一定包含在form之中,有 ...

  3. springmvc的form标签

    1.要使用Spring MVC提供的表单标签,首先需要在视图页面添加: <%@ taglib prefix="form" uri="http://www.sprin ...

  4. 上传图片HTML <form> 标签的 method 属性

    <!DOCTYPE HTML><html><body> <form action="/example/html5/demo_form.asp&quo ...

  5. 解决HtmlAgilityPack无法获取form标签子节点的问题

    问题描述 今天使用HtmlAgilityPack提取Form表单下的input节点,发现提取的form节点没有子节点,InnerHtml也是为空,起初以为是标签不全导致,后来分析html代码发现不可能 ...

  6. SPRING IN ACTION 第4版笔记-第六章RENDERING WEB VIEWS-002- Spring的JSP标签之form标签(<sf:input><sf:errors><sf:form>)

    一. Spring offers two JSP tag libraries to help define the view of your Spring MVC web views. One tag ...

  7. HTML <form> 标签的 enctype 属性

    HTML <form> 标签 定义和用法 enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码. 默认地,表单数据会编码为 "application/x-www- ...

  8. Form标签+Css基础

      一.Form表单标签 <form action="" method=""></form>    表单就是用来将用户的信息提交到服务器 ...

  9. HTML <form> 标签的 method 属性(20161028)

    HTML <form> 标签的 method 属性 HTML <form> 标签 实例 在下面的例子中,表单数据将通过 method 属性附加到 URL 上: <form ...

随机推荐

  1. sge学习 (转)

    转自http://biancheng.dnbcw.info/linux/417992.html 命令: qsub   -  submit a batch job to Grid Engine. qsh ...

  2. Apache服务器配置技巧

    1.如何设置请求等待时间 在httpd.conf里面设置: TimeOut n 其中n为整数,单位是秒. 设置这个TimeOut适用于三种情况: 2.如何接收一个get请求的总时间 接收一个post和 ...

  3. (转)WHY DEEP LEARNING IS SUDDENLY CHANGING YOUR LIFE

    Main Menu Fortune.com       E-mail Tweet Facebook Linkedin Share icons By Roger Parloff Illustration ...

  4. SSH 创建证书认证

    *******chmod 600 195-tempuser.txt******* useradd tempusersu tempusercdmkdir .sshchmod 700 .sshcd .ss ...

  5. VS中Debug和Realease、及静态库和动态库的区别整理

    一.Debug和Realease区别产生的原因 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程序在代码 ...

  6. indexOf ie下的兼容问题

    今天突然发现ie下报错,不支持的属性,原来ie下不支持indexOf. 加入如下代码即可解决. if (!Array.prototype.indexOf){  Array.prototype.inde ...

  7. python---生成随机密码

    #简短地生成随机密码,包括大小写字母.数字,可以指定密码长度 from random import choice import string #python3中为string.ascii_letter ...

  8. 【uTenux实验】内存池管理(固定内存池和可变内存池)

    1.固定内存池管理实验 内存管理是操作系统的一个基础功能.uTenux的内存池管理函数提供了基于软件的内存池管理和内存块分配管理.uTenux的内存池有固定大小的内存池和大小可变的内存池之分,它们被看 ...

  9. R中,去掉dataframe中的NA行

    R中使用complete.cases 和 na.omit来去掉包含NA的行 现在有个一data.frame  datafile如下所示 Date        sulfate nitrate ID 1 ...

  10. [HTML5]块和内联元素的嵌套

    块元素可以包含块或内联元素,但是内联元素只能包含其他内联元素. <!-- 无效代码! :-( --> <strong> <p>你不应该把p元素放在 "st ...