HTML图例元素未计入表单

时间:2015-05-09 00:55:14

标签: html forms elements

我有以下HTML:

<!DOCTYPE html>
<html>
  <head>
    <title>JavaScript &amp; jQuery - Chapter 13: Form Enhancement and Validation - Select All Checkboxes</title>
    <link rel="stylesheet" href="css/c13.css" />
  </head>
  <body>
    <div class="container login">
      <form id="interests" action="/login" method="post">
        <div class="one-third column">
            <img src="img/logo.png" alt="logo" id="logo" />
        </div>
        <div class="two-thirds column" id="main">
          <fieldset>
            <legend>Genres</legend>
            <label><input type="checkbox" value="all" id="all">All</label>
            <label><input type="checkbox" name="genre" value="animation">Animation</label>
            <label><input type="checkbox" name="genre" value="docs">Documentary</label>
            <label><input type="checkbox" name="genre" value="shorts">Shorts</label>
          </fieldset>
        </div><!-- .two-thirds -->
      </form>
  </div><!-- .container -->
  <script src="js/utilities.js"></script>
  <script src="js/all-checkboxes.js"></script>
</body>

在all-checkbox.js文件中,我有以下几行:

...
var form = document.getElementById('interests');
var elements = form.elements;
...

当我加载页面并检查调试器(Firefox)中的elements变量时,我看到它是一个长度为5的数组。我的理解是form.elements将返回表单的所有元素。调试器显示元素的以下值:

0: <fieldset> 
1: <input#all> 
2: <input> 
3: <input> 
4: <input>

我认为传奇元素也是一个表单元素,但显然在这里不算这样。

任何人都可以开导我吗?

1 个答案:

答案 0 :(得分:1)

getElementById会返回HTMLFormElement个对象。 legend不是listed element属性中的elements

至于为什么 ... /耸肩。我似乎无法找到任何背景故事。如果我不得不猜测,我会说,因为它不是表格的实际控制元素,也许权力 - 感觉HTMLFORMElement.elements意味着“控制”元素。但同样,只是猜测。