form表单的作用和常用的input标签及其作用
- fomr标签的主要属性:
- action: 规定表单提交的地址
- method: 规定表单提交时所使用的HTTP的方法
- target: 规定在何处打开action
- enctype:与发送时是否对字符编码有关
- form表单的作用:form表单用于搜集不同类型的用户输入;表单元素指的是不同类型的input元素、复选框、单选按钮、提交按钮等等。form元素的用法如下:
<form>
form elements
<form>
只有当用户输入被包裹在<form>
标签里才会被提交到服务端。 - 常见input标签及其作用
-
<input>
:这是最重要的表单元素,用于接收用户的输入,且有一下常见的类型- text:一般的单行文本输入
- password:密文输入,输入的内容不会可见,而是以黑点的形式呈现
- radio:定义单选钮
- checkbox:定义复选框
- submit:定义表单数据提交的按钮
- button:定义一般的按钮
- reset:用来重置用户的输入
-
<select>
:定义下拉元素 -
<option>
:定义待选项,与<select>
元素一起出现 -
<textarea>
:定义多行文本输入 -
<button>
:定义可点击的按钮
-
post和get方式的区别
<form>
标签的method属性规定在提交表单时所用的HTTP方法(get或者post),默认为GET。
- GET: 如"get"单词的含义“得到”,故使用GET方法的目的是要从服务端得到某些信息,当然,“得到”之前必须先去和服务端通信,去告知服务端想得到关于什么的信息,所以当表单是被动提交(比如搜索引擎查询)时,就可以使用GET方法;但是当使用GET方法时提交的表单数据在地址栏中是可见的,当有敏感信息需要发送时应该使用POST方法。另外由于浏览器设定容量的限制,GET方法只适合提交少量的数据。
- POST:如"post"单词的含义“发送”,可知POST方法的目的是要去向服务端发送信息,所以当更新表单数据时就可以使用POST方法。与GET方法不同,POST方法提交的数据在地址栏中是不可见的,而且POST方法也适合提交相对大量的数据。
input里name有什么用
name属性,如果想要数据正确的被提交,每个输入字段必须都要设置一个name属性,因为数据提交给服务端最终是以"key:value"的键值对的形式传递的,这里面"key"的只就是input里name属性的值,如果缺少name属性的话,那就组成不了键值对,数据就不会被传递给服务端,比如下例中,被提交的只有"lastname:Mouse"的键值对,而"Mickey"的值因为没有"name"属性所以不会被传递
<form action="action_page.php">
First name:
<input type="text" value="Mickey">
Last name:
<input type="text" name="lastname" value="Mouse">
<input type="submit" value="Submit">
</form>
radio的分组
同一个分类的多个选项应该将name属性的值设置成相同,否则就是两个不同的选项,比如下例中name="gender"
和name="sexual-orientation"
所代表的就是两个互不相干的单选钮。
<input type="radio" name="gender" value="male">男
<input type="radio" name="gender" value="female">女
<input type="radio" name="sexual-orientation" value="male">男
<input type="radio" name="sexual-orientation" value="female">女
placeholder属性的用处
placeholder属性用以描述输入字段预期值的提示,所以当我们需要在输入框上给用户某些提示信息时或期望用户输入何种类型的数据时就可以用placeholder属性,这个属性的值只是个占位符文本,不会影响最终提交的value值。
"type=hidden"隐藏域的作用
隐藏域也是表单元素之一,语法同其他表单元素一样:
<input type="hidden" name="name" value="value">
只是这个隐藏域对用户是不可见的,用户感知不到它的存在,但是在用户提交表单数据时,其中包含的隐藏域里的数据也会被提交,所以隐藏域一般有以下作用:
- 可以通过在表单中插入隐藏域的方式来对提交表单数据的用户的身份进行鉴权,对于鉴权通过的数据请求则不去处理,可以防止不法分子恶意攻击。
- 当一个form里有多个提交按钮时可以通过插入隐藏域来确定被提交上来的数据分别是由哪个按钮提交的。