html标签,详细解读表单form相关的几种特殊使用方法
发布于 作者:苏南大叔 来源:程序如此灵动~

本文说一个特别基础的html
标签,就是form
标签。在早期的互联网时代,表单就是最基础的数据提交方式。但是,在后来的互联网发展中,这个表单就不是唯一的数据提交准则了。所以,本文的表单form写法,就偏向于一些较为另类但实用的用法。

大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文描述form
表单的一些另类用法,不求全但求精致。测试环境:win10
,chrome@106.0.5249.119
。
特殊的input
<input>
可以有不同的type
,不同的type
也有不同的表现形式。

不指明type
默认情况下,不指明input
的type
的话,会表现为一个输入框。但是因为这种情况下,会有歧义发生(历史上,ie
浏览器曾经把这种情况解释为一个按钮),所以最好指定一下type="text"
,再指定一下placeholder
属性(考试要考的)。
hidden隐藏数据
用于传递些默认信息,比如:修改文章的时候的id
。
textarea的文字设置
textarea
的文字内容,并不是放置在value
里面的,而且文字前面的空白字符会被展示出来,所以文字必须紧贴标签。这个和html
格式化这事就是冲突的。格式化的话,必然有回车换行空白字符,但是它们会被在textarea
的内容文字上体现出来。
textarea禁止改变大小
默认情况下,textarea
是可以拖动改变大小的。这个显然是和常理有些不符。解决方案是:
这种情况下,右下角的特殊纹饰会消失。
或者:
这种情况下,就是同时设置宽(高)度、最大宽(高)度、最小宽(高)度都一样。

submit提交按钮
正常情况下来说,提交按钮是这样的。
正常情况下来说,这是个上书“提交”两个大字的按钮。如果用css定义的话,这部分文字也是可以用font
相关属性定义的。
image图片提交按钮
还可以使用图片做提交按钮,不用写特殊事件,直接就可以触发提交动作。
苏南大叔认为:不如对submit
按钮应用一下css
背景图,更靠谱一些。例如:
text回车自动提交
<input type="text"/>
有个特殊的隐藏技能,就是输入框里面回车,会触发表单的提交。就目前的测试结果来看,这个输入框回车触发提交的动作,和输入框的数量无关。(历史上,是当且仅当一个输入框的时候,才会触发提交。)
如果想禁用这种<input type="text"/>
的自动表单提交功能的话,可以写js
事件,例如:
button
放在form
里面的button
,点击的时候,也会自动触发submit
事件。
form阻止提交
这里再说说阻止form
的提交,正常情况下来说,都是会阻止form
的提交的。因为,ajax
类似技术现在已经很成熟,页面不刷新更新更符合潮流。并且一般在form
提交之前,需要对表单数据进行前置验证,验证失败会阻止继续提交。

普通的onsubmit
这里需要注意的就是return
字样,onsubmit="return false"
的字样,就是禁止提交。return true
的字样,就是检测通过,可以提交。
放在action
里面不用return
把js
事件放在action
里面的话,
this
是window
,而不是form
。- 不用
return false
,不会触发事件提交的。
基于jquery的onsubmit
基于jquery
的submit()
和普通的onsubmit()
是有些不同的。里面通过阻止事件的默认行为来禁止提交。
关键代码是:
基于react
的onsubmit
基于react
的submit
和jquery
的基本类似,都是使用e.preventDefault()
来阻止表单提交的。

form序列化数据
通常来说,form
提交的数据会需要在前端做各种组合,然后再提交。不过,对于jquery
来说,这种组合提交还可以使用一句话就搞定。比如:
关键代码是:
至于服务器端如何解析这个字符串,就暂时不是本文要讨论的内容。
相关链接
- https://newsn.net/say/rel-noopener-noreferrer.html
- https://newsn.net/say/html-img-space.html
- https://newsn.net/say/css-marker.html
- https://newsn.net/say/css-box-sizing.html
- https://newsn.net/say/css-content-attr.html
总结
更多html5
的标签解读经验文章,请点击:


