一、什么是表单?

收集用户信息的一个容器,相当于点餐时的菜单...

表单中包含表单域(文本框、密码框、按钮 都属于表单域)

定义表单的语法:

<form>

表单域

</form>

常用的属性

1.action

用来处理请求的页面或程序(通常是JSP页面或Servlet 相当于厨师)

点击提交按钮以后,请求提交到handleForm.html页面来处理

<form action = "handleForm.html">

</form>

2.method

默认是get提交

<form action = "handleForm.html" method="post">

</form>

提交方式

常见的提交方式有两种

(1)get请求

(2)post请求

get和post的区别:

区别1:get请求的参数会暴露在浏览器的地址栏中,不安全,post请求的参数不会显示在地址栏中,相对安全。

例:地址栏中显示 www.handleForm.html?username=aaa&password=123

get 纸质菜单

post 点餐机

区别2:get请求的参数长度有限制(通常和浏览器相关)

post请求的参数理论上长度无限制

二、表单域

需求:实现用户登录页面

1)文本框

<input type ="text" name="username" value="username" />

type 表示表单域的类型,默认值是text表示文本框

name 给表单域起一个名字,取对应的表单域中的内容

value 真正传递到服务器的值

属性maxlength="6"表示最多输入6个字符,中英文都是6个

属性size=“30”可以改变文本框的大小,但是尽量不要这样写,通过javascript控制文本框的大小

2)密码框

<input type="password" name="password" value="pasword"/>

3)按钮

①提交按钮,submit,点击提交按钮,会提交请求

<input type="submit" value="登录"/>

②重置按钮,reset,点击重置按钮,会把表单域中的值恢复到默认状态

<input type="reset" value="重置"/>

③图片按钮,image,功能类似于提交按钮,点击图片按钮以后 也会提交表单

<input type="image" src="images/ceo.jpg"/>

④普通按钮,不能提交表单,可以绑定事件

<input type="button" value="普通按钮" οnclick="alert('你好')"/>

不推荐直接在按钮代码上,直接绑定事件,不符合W3C规范

W3C规范:内容、表现、行为三者分离

内容、表现、行为三者分离,如果三者没有分离,代码糅杂在一起,比较乱,不好维护

为了体现代码的可维护

(1)内容

html标签和文字

(2)表现

CSS样式

(3)行为

JavaScript代码控制的

4)隐藏域

隐藏域 name是服务器端用来取值的标识名,value表示传递的内容

<input type="hidden" name="safeCode" value="12345"/>

例:银行卡提交时的安全码,不该让客户看到

5)单选框 radio

<form action="a.jsp" method ="post">
<!--选项写在同一组下,否则没有单选,变成了两个单选框-->
性别:男<input type="radio" name="sex"  value="male" />
女<input type="radio" name="sex" value="female"checked="checked"/>
</form>

checked="checked"表示默认选中,如果有多个选项被赋值该属性,那么同组中只有最后一个被默认选中。

6)复选框 checkbox

<form action="a.jsp" method ="post">
<!--可以选多个默认选中-->
爱好:足球<input type="checkbox" name="hobby" value="football" checked="checked"/>
篮球<input type="checkbox" name="hobby" value="basketball"/>
羽毛球<input type="checkbox" name="hobby" value="badminton" checked="checked"/>
</form>

可以选择多个值默认选中

7)下拉列表框 <select><option></option></select>

<form action="a.jsp" method ="post">
<!--mutiple:如果想让下拉列表框可以通过ctrl+左键多选,可以设置multiple属性的属性值为multiple来实现。设置了该属性的下拉列表框,可以设置其多个option选项为默认被选中的。-->
现居住城市:
<select name="city" size="2" multiple="mutiple">
<option value="beijing">北京</option>
<option value="tianjin" selected="selected">天津</option>
<option value="shanghai" selected="selected">上海</option>
<option value="guangzhou">广州</option>
<option value="other">其它</option>
</select>
</form>

size="2"表示一次性显示两个

style="vertical-align:top;"可以改变字体位置、对齐方式。

style="属性1:值1;属性2,值2.。。。"

8)多行文本域 textarea

col=""控制列数,row=""控制行数,readonly="readonly"设置为只读,不可编辑

①<form action="a.jsp" method ="post">
文本域:<textarea name="content" id="2" cols="30" rows="10" style="vertical-align:top" readonly="readonly">

</textarea>
</form>

②<form action="handlerForm.jsp" method="post">
<h2>用户协议</h2>
<textarea name="content" rows="8" cols="60" readonly="readonly">
欢迎阅读XX电子商城用户协议,请仔细阅读如下内容:
...
</textarea><br/><br/>
同意以上协议<input type="checkbox" name="agree"/>
<!-- 设置按钮的disabled属性为disabled可以使按钮不可用-->
<input type="submit" value="注册" disabled="disabled"/>
</form>

9)文件域 file

<form action="a.jsp" method ="post">
请选择上传的照片:<input type="file" name="photo"/>
</form>

附:演示用户注册

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 <html>
 <head>
 <title>演示用户注册</title>
  
  
 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  
  
  
 </head>
  
 <body>
  
  
 <fieldset style="width:700px;">
 <legend>用户注册</legend>
 <form action="#" method="post">
 <label for="username">用户名</label><input type="text" name="username" id="username"/><br/>
 密码<input type="password" name="password1"/><br/>
 确认密码<input type="password" name="password2"/><br/>
 性别:
 <input type="radio" name="sex" value="male" checked="checked"/>
 <input type="radio" name="sex" value="female"/><br/>
 婚姻状态:
 未婚<input type="radio" name="marryState" value="single" checked="checked"/>
 已婚<input type="radio" name="marryState" value="married"/>
 离异<input type="radio" name="marryState" value="divorce"/><br/>
 请选择您的爱好:
 足球:<input type="checkbox" name="hobby" value="football" checked="checked"/>
 篮球:<input type="checkbox" name="hobby" value="basketball" checked="checked"/>
 羽毛球:<input type="checkbox" name="hobby" value="badminton"/><br/>
 请选择您所在城市
 <select name="city" multiple="multiple" size="3" style="vertical-align:top;">
 <option value="beijing">北京</option>
 <option value="shanghai">上海</option>
 <option value="guangzhou">广州</option>
 <option value="shenzhen">深圳</option>
 <option value="jinan">济南</option>
 </select><br/>
 用户协议<textarea rows="8" cols="80" style="vertical-align:top;" readonly="readonly">
 XXXX电子商城用户协议,请仔细阅读....
 </textarea><br/>
 同意该协议
 <input type="checkbox" name="agree"/><br/>
 请选择需要上传的照片<input type="file" name="photo"/>
 <input type="button" value="注册" disabled="disabled"/>
  
 <!-- 九.隐藏域 -->
 <input type="hidden" name="safeCode" value="12345"/>
 </form>
 </fieldset>
  
 </body>
 </html>
 

表单域组标签:

<form action="" method="post">
<!-- 表单域组-->
<fieldset>
<legend>用户注册</legend>

<label for="username">用户名</label><input type="text" id="username" name="username" /><br/>
</fieldset>
</form>


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐