2

我是 HTML 新手。这可能是非常基本的,但无论我做什么,我都无法让我的表单工作。每当我单击输入字段(文本区域)时,只要我按住鼠标,输入字段就会保持选中状态,但每当我释放它时,焦点就会回到表单的第一个字段。这是 HTML/CSS 吗?我不知道如何解决它。

这是我正在处理的表单的 URL ( http://www.seanmccully.com/apps/langham/tea.html ) — 但它现在可能已修复。可以看到不能选择名字、姓氏、城市、邮箱(只能通过tab输入数据)。

4

2 回答 2

11

这是因为您已将所有表单元素包装在一个label元素中。摆脱它,它会正常工作。

一个label元素只能与单个表单控件相关联,单击 alabel会将焦点放在其关联的控件上。由于您的 中有多个控件label,因此它与第一个控件相关联,并且随着单击事件在 DOM 中传播,单击任何其他表单控件将到达标签并使其将焦点放在其关联控件(第一个)上。

如果要使用label元素,则每个控件都需要一个。您可以将span元素更改为label元素,并使用该for属性将该标签与控件相关联,或者您可以将每个控件包装在标签中:

<label class="labelstyle" for="fname">First Name</label>
<input name="fname" type="text" class="fieldstyle" id="fname" size="25" maxlength="50"/>

<!-- or -->

<label class="labelstyle">
    First Name <input name="fname" type="text" class="fieldstyle" id="fname" size="25" maxlength="50"/>
</label>
于 2012-04-26T13:42:41.183 回答
1

看来我找到了哪里出错了:

  1. 将原始代码复制到记事本中(编写 HTML 时总是需要它)。
  2. 删除不必要的代码以更清楚地看到您的问题(例如 CSS 代码甚至脚本代码)。
  3. 然后仔细检查代码树!我在这里和那里看到标签!

你知道,你不应该把这个家伙到处放。你让他总是集中注意力,而不是输入名为文本的家伙。所以尝试删除标签;你会检查出来的。

于 2012-04-26T14:21:09.327 回答