表单是一个包含表单元素的区域,而表单元素是运行用户在表单中输入信息的元素。通过表单,用户可以向服务器提交数据,而服务器通过表单收集数据后给出相应的Response。
**1. 表单标签 **
HTML中表单标签是<form></form>,是一个闭合标签,它有4个非常重要的属性:
- action:表单提交地址;
- method:表单提交方法(通常有get和post之分);
- target:在何处打开action;
- enctype:编码方式;
其中编码方式有3个选项,默认为“application/x-www-form-urlencoded”,其余两个是“text/plain”和“multipart/form-data”。
2. GET和POST
两者都是表单提交方法,但也有区别:
(1)GET会把表单提交的数据按key=value的形式与URL进行组合拼接,因此可以在URL上看到提交的表单数据。而POST方法不会修改URL进行组合拼接,因此不会在URL上看到提交的数据。
(2)由于GET在URL上的可见性,导致了提交敏感数据(如:用户密码等)时使用GET方法会不安全,而POST方法没有这种顾虑。
(3)URL拼接方式提交数据时对字符串大小有限制,因此会限定GET方法提交的数据量,而POST方法理论上没有限制。
(4)就使用场景而言,如果需要向服务器取数据或安全性要求不高时可使用GET方法,而向服务器存数据或安全性要求较高时使用POST方法。
3. 常用表单元素
表单元素都必须设置name值才能提交数据,name值相当于提交数据的key值。
3.1 input元素
input元素因属性type值的不同可以生成多选框、单选框、文件上传、文本框、密码框、隐藏域、按钮等。
3.1.1 type="checkbox"
生成多选框,name属性值还能对多选框进行分组,value属性值为选项提交时的值。例:
<div>
<input type="checkbox" name="goods" value="rice">米
<input type="checkbox" name="goods" value="flour">面粉
</div>
3.1.2 type="radio"
生成单选框,name属性值还能对单选框进行分组,value属性值为选项提交时的值。例:
<div>
<input type="radio" name="gender" value="male">男
<input type="radio" name="gender" value="female">女
</div>
3.1.3 type="file"
生成上传文件按钮,设定accepet属性限定上传文件类型,例:
<input type="file" name="myFile" accept="image/jpeg">
3.1.4 type="text"
生成普通文本框,设置value属性值为其设置默认值,设置placeholder属性设置提示信息。例:
<input type="text" name="userName" value="who" placeholder="请输入用户名" >
3.1.5 type="password"
生成密码文本框,设置placeholder属性设置提示信息。例:
<input type="password" name="password" placeholder="请输入密码" >
3.1.6 type="button"
生成一般按钮,点击该按钮不会主动提交表单。例:
<input type="button" value="点我">
3.1.7 type="submit"
生成提交按钮,点击该按钮主动提及表单。例:
<input type="submit" value="登录">
3.1.8 type="reset"
生成重置表单按钮。例:
<input type="reset" value="重置">
3.2 select option
select用于生成下拉框,option为下拉框中的选项,两者一般嵌套使用。例:
<select name="country">
<option value="us">美国</option>
<option value="chn">中国</option>
<option value="jpn">日本</option>
</select>
3.3 textarea
textarea生成多行文本框。由于该标签为闭合标签,写在标签内的值即多行文本框的默认值。例:
<textarea name="comment">我想吐槽</textarea>