示例代码

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>获取表单数据</title>
  8. </head>
  9. <body>
  10. <form id="myForm">
  11. <input type="checkbox" name="tablename" value="Bike">Bike<br>
  12. <input type="checkbox" name="tablename" value="Car">Car<br>
  13. <input type="button" value="提交" onclick="getFormData()">
  14. </form>
  15. <script>
  16. // 获取表单
  17. var myForm = document.getElementById('myForm')
  18. var getFormData = function () {
  19. let checkArr = []
  20. //表单属性 elements 获取表单中所有控件的集合
  21. let inputList = myForm.elements.tablename
  22. for (let index = 0; index < inputList.length; index++) {
  23. // 表单中选择的checkbox添加到checkArr数组中
  24. if (inputList[index].checked) {
  25. // 选中复选框的值
  26. checkArr.push(inputList[index].value)
  27. }
  28. }
  29. console.log(checkArr);
  30. }
  31. </script>
  32. </body>
  33. </html>

fiedldset组合表单

  1. <form>
  2. <fieldset>
  3. <legend>health information </legend>
  4. height: <input type = ‘text’ />
  5. weight: <input type = ‘text’ />
  6. </fieldset>
  7. </form>

表单脚本 - 图1

表单创建

HTML创建

在HTML中,表单用form来创建。

JavaScript创建

在JavaScript中,表单对应的则是HTMLFormElement类型。HTMLFormElement继承了HTMLElement,因而与其他HTML元素具有相同的默认属性。

获取表单

  1. // 方式1:根据下标获取
  2. var form = document.forms[0];
  3. // 方式2:根据name属性名获取
  4. var form = document.forms['formName'];

表单的属性和方法

  • accepetCharset:服务器能够处理的字符集;等价于HTML中的accept-charset特性。
  • action:接受请求的URL;等价于HTML中的action特性。
  • elements:表单中所有控件的集合。
  • enctype:请求的编码类型;等价于HTML中的enctype特性。
  • length:表单中控件的数量。
  • method:要发送的HTTP请求类型,通常是“get”或“post”;等价于HTML的method特性。
  • name:表单的名称;等价于HTML的name特性。
  • reset():将所有表单域重置为默认值。
  • submit():提交表单。
  • target:用于发送请求和接收响应的窗口名称;等价于HTML的target特性。

    提交表单

    通用提交按钮

    1. <input type = ‘submit’ value= ‘Submit Form>

自定义提交按钮

  1. <button type = ‘submit’>Submit Form</button>

图像按钮

  1. <input type = ‘image’ src = ‘graphic.gif’ >

只要表单中存在上面列出的任何一种按钮,那么在相应表单控件拥有焦点的情况,按回车键就可以提交该表单。
(textarea是一个例外,在文本区中回车会换行。)如果表单里没有提交按钮,按回车键不会提交表单。
表单脚本 - 图2

提交表单

  1. form.submit()

避免表单重复提交

提交表单时可能出现的最大问题,就是重复提交表单。
解决这一问题的办法有两个:

  1. 第一次提交表单后就禁用提交按钮。
  2. 利用 onsubimt 事件处理程序取消后续的表单提交操作。

表单脚本 - 图3
注意:不能通过 onclick 事件处理程序来实现这个功能,原因是不同浏览器之间 存在“时差”:有的浏览器会在触发表单的 submit 事件之前触发 click 事件,而有的浏览器则相反。对于先触发 click 事件的浏览器,意味着会在提交发送之前禁用按钮,结果永远都不会提交表单。因此,最好是通过 submit 事件来禁用提交按。不过,这种方式不适合表单中不包含提交按钮的情况;

重置表单

JavaScript重置

form.reset()

HTML重置

<input type =’reset’ value = ‘Reset Form’>

<button type = ‘reset’>Reset Form </button>

获取表单数据

可以像访问页面中的其他元素一样,使用原生 DOM 方法访问表单元素。
Elements 属性,该属性是表单中所有元素的集合。
这个 elements 集合是一个有序列表,其中包含着表单中的所有字段,例如 之间。

style=”resize:none” //控制textarea 元素不可拉伸
另一个与 的区别在于,不能在 HTML 中给