博客列表 >HTML 表单中按钮、下拉列表、文本域、表单域的常用属性与事件

HTML 表单中按钮、下拉列表、文本域、表单域的常用属性与事件

晴天
晴天原创
2020年04月05日 16:49:031802浏览

1.按钮常用属性

1.1 常用属性

  • 按钮使用<button></button>标签
属性值 描述
type=”submit” 按钮类型为提交
formmothod=”POST” 提交类型为 POST
POST 在 HTML 主体中提交,不可见
formmothod=”GET” 提交类型为 GET
GET 在 url 中提交,显示为https://php.cn/zhuce.php?name=xxx&email=xxx
formtarget=”_blank” 设置在新窗口/本窗口提交
_blank 在新窗口打开,不写 target 默认为本窗口
formaction=”zhuce.php” 设置提交到哪里
  • 如果在<button></button>中设置 formmothod、formaction 属性及属性值
  • 那么<form></from>中的 mothod、action 属性及属性值失效

1.2 演示代码

  1. <h3>登陆/注册</h3>
  2. <form action="register" method="POST">
  3. <section>
  4. <label for="email">邮箱:</label>
  5. <input type="email" id="email" name="email" required autofocus />
  6. </section>
  7. <section>
  8. <label for="password">密码:</label>
  9. <input type="password" id="password" name="password" required />
  10. </section>
  11. <section>
  12. <button
  13. type="submit"
  14. formmothod="POST"
  15. formtarget="_blank"
  16. formaction="list.php"
  17. >
  18. 登陆
  19. </button>
  20. <button
  21. type="submit"
  22. formmothod="GET"
  23. formtarget="_blank"
  24. formaction="zhuce.php"
  25. >
  26. 注册
  27. </button>
  28. </section>
  29. </form>

2.下拉列表常用属性与事件

2.1 常用属性

  • 下拉列表使用<select></select>标签
  • <option></option>写入数据内容
  • <optgroup></optgroup>给数据内容分组
  1. <form action="">
  2. <select name="lang" id="lang" size="8" multiple>
  3. <optgroup label="前端">
  4. <option value="HTML5">HTML5</option>
  5. <option value="CSS3">CSS3</option>
  6. <option value="JaveScript">JaveScript</option>
  7. </optgroup>
  8. <optgroup label="后端">
  9. <option value="PHP">PHP</option>
  10. <option value="MySQL">MySQL</option>
  11. <option value="Laravel">Laravel</option>
  12. </optgroup>
  13. </select>
  14. </form>
属性 描述
select 中的 size 列表显示长度
select 中的 multiple 是否多选
optgroup 中的 label 分组名
option 中的 value=”HTML5” 列表值
  • 可以使用属性selected设置下拉列表默认值
     
  • <option></option>中的文字内容可以加到属性 label 中
     
  • 例如

    • 原代码<option value="HTML5">HTML5</option>
    • 修改后<option value="HTML5" label="HTML5"></option>
  • 建议使用后者,后期我们使用 JavaScript 来处理的时候非常方便,且更加安全。

2.2 常用事件

<select></select>常用两大 js 事件属性

  • onchange = " "

    • 当选项值被改变时触发

    • 演示 <select name="lang" id="lang" onchange="alert(this.value)" ></select>

  • onclick = " "

    • 当选项被单击时触发

    • 演示 <select name="lang" id="lang" onclick="alert(this.value)" ></select>


3.文本域常用属性与事件

3.1 常用属性

  • 以后开发过程中会用到副文本的编辑器,比如写个后台,肯定要允许用户去登陆去发文章,发文章就涉及到文本域。

  • 文本域标签为<textarea></textarea>

    • 标签属性介绍
属性 描述
cols 行值
rows 列值
min 最小字数
max 最大字数
placeholder 提示
  • 注意:<textarea></textarea>起始标签与结束标签之间不要留值,有值则不显示 placeholder 值
  1. <form id="common">
  2. <textarea
  3. name="replay"
  4. cols="30"
  5. rows="10"
  6. min="5"
  7. max="50"
  8. placeholder="不超过50个字"
  9. ></textarea>
  10. <button>提交</button>
  11. </form>

3.2 常用事件

  • 跟下拉列表的常用事件相同

  • 另外还有一个事件为onselect

    • 文本被选中时触发,改变字体颜色
  1. <textarea
  2. name="replay"
  3. cols="30"
  4. rows="10"
  5. min="5"
  6. max="50"
  7. placeholder="不超过50个字"
  8. onselect="this.style.color='red'"
  9. ></textarea>
  10. <!--字体被选中时,变成红色-->

4.表单域分组元素常用属性

  • 设计非常复杂数据时使用

  • 它们相当于一个容器,该元素本身不参与数据的交互操作。

  • 使用<fieldset></fieldset>标签

    • 在上面标签中添加<legend></legend>给分组元素设置名称
  1. <form action="" id="register"></form>
  2. <!--第一个表单分组-->
  3. <fieldset name="base" form="register">
  4. <legend>基础信息</legend>
  5. <section>
  6. <input
  7. type="email"
  8. name="email"
  9. form="register"
  10. antofocus
  11. placeholder="您的邮箱"
  12. />
  13. </section>
  14. <section>
  15. <input
  16. type="password"
  17. name="password1"
  18. form="register"
  19. placeholder="您的密码"
  20. />
  21. </section>
  22. <section>
  23. <input
  24. type="password"
  25. name="password2"
  26. form="register"
  27. placeholder="重复密码"
  28. />
  29. </section>
  30. </fieldset>

5.文件域

  • 文件域是用来上传文件的。通过前端表单将一个文件上传到服务器上。
  1. <section>
  2. <label for="userpic" >头像:</label>
  3. <input type="file" name="user_pic" id="userpic">
  4. <!--file:文件类型。name这里一定要用下划线,链接线在PHP中是非法的。-->
  5. <!--我们在上传的时候,可以将文件大小限制一下,用隐藏域,
  6. 类型为hidden 在页面中看不到的,给服务器端脚本看
  7. -->
  8. <input type="hidden" name="MAX_FILE_SIZE" value="8388608">
  9. <!--MAX_FILE_SIZE:文件最大尺寸,8M=8388608 -->
  10. </section>

6.预定义复合框

  • 比如搜索引擎中的智能联想,下拉框中预制一些查询结果。
  1. <section>
  2. <label for="course">课程</label>
  3. <input type="text" id="course" name="course" list="courses" />
  4. <datalist id="courses">
  5. <option value="HTML/CSS开发与实战"></option>
  6. <option value="JaveScript开发与实战"></option>
  7. <option value="PHP开发与实战"></option>
  8. <option value="Laravel开发与实战"></option>
  9. </datalist>
  10. </section>

7.图像域

  • 不常用,将按钮用图片表示

  • 类型为 image

8.input 数字

<input type="number" name="age" min="18" max="60" step="5" id="age" form="" value="20" >

属性值 描述
type=”number” 类型为数字
min=”18” 数字最小值为 18
max=”60” 数字最大值为 60
value=”20” 默认值为 20
step=”5” 每次递增值为 5

9.一个完整的 input 提交表单

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>用户调查表</title>
  7. <style>
  8. body {
  9. background: url(https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1586078385325&di=0dbd43617eb63631da0ea3f868c5a909&imgtype=0&src=http%3A%2F%2Fattach.bbs.miui.com%2Fforum%2F201312%2F20%2F160858yk1tq9ff1fz3i5zw.jpg);
  10. background-size: 100% 1024px;
  11. display: grid;
  12. row-gap: 15px;
  13. }
  14. fieldset {
  15. width: 40%;
  16. margin: auto;
  17. color: lightseagreen;
  18. border-radius: 6px;
  19. border: 2px solid lightseagreen;
  20. }
  21. fieldset:hover {
  22. background-color: lightcyan;
  23. }
  24. fieldset > section {
  25. font-weight: bolder;
  26. margin-left: 10%;
  27. margin-top: 20px;
  28. display: grid;
  29. grid-template-columns: repeat(3, 1fr);
  30. column-gap: 15px;
  31. }
  32. fieldset > legend {
  33. text-align: center;
  34. font-size: 30px;
  35. }
  36. input {
  37. border: none;
  38. outline: none;
  39. border-bottom: 1px solid #666;
  40. background-color: transparent;
  41. }
  42. button {
  43. width: 120px;
  44. height: 30px;
  45. border: none;
  46. outline: none;
  47. border-radius: 6px;
  48. background-color: lightseagreen;
  49. color: white;
  50. }
  51. button:hover {
  52. background-color: darkorchid;
  53. cursor: pointer;
  54. }
  55. section {
  56. margin: auto;
  57. }
  58. </style>
  59. </head>
  60. <body>
  61. <!-- 先给个标题 -->
  62. <header
  63. style="
  64. color: seashell;
  65. font-size: 2rem;
  66. text-align: center;
  67. margin-top: 10px;
  68. "
  69. >
  70. 用 户 登 录 或 注 册
  71. </header>
  72. <!-- 创建表单 -->
  73. <form action="" id="stat"></form>
  74. <!-- 进行表单分组 -->
  75. <!-- 基本信息 必填项 -->
  76. <fieldset name="best" form="stat">
  77. <legend>基本信息</legend>
  78. <!-- 用户名 -->
  79. <section>
  80. <label for="username">用户名:</label>
  81. <input
  82. type="text"
  83. id="username"
  84. form="stat"
  85. name="username"
  86. maxlength="10"
  87. minlength="4"
  88. placeholder="请输入4-10位长度用户名"
  89. required
  90. autofocus
  91. />
  92. </section>
  93. <!-- 密码 -->
  94. <section>
  95. <label for="password">密码:</label>
  96. <input
  97. type="password"
  98. id="password"
  99. name="password"
  100. form="stat"
  101. minlength="6"
  102. maxlength="12"
  103. placeholder="请输入6-12位长度密码"
  104. required
  105. />
  106. </section>
  107. <!-- 性别 -->
  108. <section>
  109. <label for="secret">性别:</label>
  110. <div>
  111. <input
  112. type="radio"
  113. name="gender"
  114. id="male"
  115. value="male"
  116. form="stat"
  117. />
  118. <label for="male"></label>
  119. <input
  120. type="radio"
  121. name="gender"
  122. id="female"
  123. value="female"
  124. form="stat"
  125. />
  126. <label for="female"></label>
  127. <input
  128. type="radio"
  129. name="gender"
  130. id="secret"
  131. value="secret"
  132. form="stat"
  133. checked
  134. />
  135. <label for="secret">保密</label>
  136. </div>
  137. </section>
  138. <!-- 年龄 -->
  139. <section>
  140. <label for="age">年龄:</label>
  141. <input
  142. type="number"
  143. name="age"
  144. id="age"
  145. min="18"
  146. max="100"
  147. value="20"
  148. form="stat"
  149. />
  150. </section>
  151. <!-- 兴趣 -->
  152. <section>
  153. <label for="travel">兴趣:</label>
  154. <div>
  155. <input
  156. type="checkbox"
  157. id="shoot"
  158. name="hobby[]"
  159. value="shoot"
  160. form="stat"
  161. checked
  162. />
  163. <label for="shoot">摄影</label>
  164. <input
  165. type="checkbox"
  166. id="game"
  167. form="stat"
  168. name="hobby[]"
  169. value="game"
  170. />
  171. <label for="game">游戏</label>
  172. <input
  173. type="checkbox"
  174. id="programme"
  175. name="hobby[]"
  176. value="programme"
  177. form="stat"
  178. checked
  179. />
  180. <label for="programme">编程</label>
  181. <input
  182. type="checkbox"
  183. form="stat"
  184. id="travel"
  185. name="hobby[]"
  186. value="travel"
  187. />
  188. <label for="travel">旅游</label>
  189. </div>
  190. </section>
  191. <!-- 头像 -->
  192. <section>
  193. <label for="image">头像</label>
  194. <input id="image" type="file" form="stat" />
  195. <input type="hidden" name="MAX_FILE_SIZE" value="8388608" />
  196. </section>
  197. <!-- 邮箱 -->
  198. <section>
  199. <label for="email">邮箱:</label>
  200. <input type="email" name="email" id="email" form="stat" />
  201. </section>
  202. <!-- 课程 -->
  203. <section>
  204. <label for="course">课程:</label>
  205. <input
  206. type="text"
  207. id="course"
  208. name="course"
  209. list="courses"
  210. form="stat"
  211. />
  212. <datalist id="courses">
  213. <option value="HTML5 开发与实战"></option>
  214. <option value="CSS3 开发与实战"></option>
  215. <option value="JavaScript 开发与实战"></option>
  216. <option value="PHP 开发与实战"></option>
  217. </datalist>
  218. </section>
  219. </fieldset>
  220. <!-- 其他信息 选填项 -->
  221. <fieldset name="best" form="stat">
  222. <legend>其他信息</legend>
  223. <!-- 擅长领域 -->
  224. <section>
  225. <label for="good">擅长领域:</label>
  226. <select name="good" id="good" form="stat">
  227. <optgroup label="前端">
  228. <option value="HTML5" label="HTML5"></option>
  229. <option value="CSS3" label="CSS3"></option>
  230. <option value="JavaScript" label="JavaScript"></option>
  231. </optgroup>
  232. <optgroup label="后端">
  233. <option value="PHP" label="PHP"></option>
  234. <option value="MySQL" label="MySQL"></option>
  235. <option value="Laravel" label="Laravel"></option>
  236. </optgroup>
  237. </select>
  238. </section>
  239. <!-- 说点什么吧 -->
  240. <section>
  241. <label for="say">留言:</label>
  242. <textarea
  243. name="say"
  244. id="say"
  245. cols="30"
  246. rows="10"
  247. form="stat"
  248. maxlength="50"
  249. placeholder="说点什么吧...不超50字"
  250. ></textarea>
  251. </section>
  252. </fieldset>
  253. <!-- 提交按钮 提交方式 -->
  254. <section>
  255. <button form="stat" formaction="login.php" formmethod="GET">
  256. 本窗口get提交
  257. </button>
  258. <button
  259. form="stat"
  260. formaction="login.php"
  261. formmethod="GET"
  262. formtarget="_blank"
  263. >
  264. 新窗口get提交
  265. </button>
  266. <button form="stat" formaction="login.php" formmethod="POST">
  267. 本窗口post提交
  268. </button>
  269. <button
  270. form="stat"
  271. formaction="login.php"
  272. formmethod="POST"
  273. formtarget="_blank"
  274. >
  275. 新窗口post提交
  276. </button>
  277. </section>
  278. </body>
  279. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议