1

我正在编写一个小型应用程序,用户可以在其中通过从复选框列表中进行选择来定义地图上的弹出窗口。每个复选框对应一个特定的数据值,列表是动态生成的。

当我获取数据时,我会遍历它并以以下格式构建一个列表:

<label>
    <input type='checkbox' name='enabled_data', value='DATA VALUE' />
    DATA VALUE
</label>

提交表单后,我得到一组 enabled_data 项目,然后我可以使用它们。

但是,一旦我尝试将 for 值附加到标签,标签就会停止工作 - 可能是因为每个复选框共享相同的名称。

<label for='enabled_data'>

我想我最终会在每个地图上使用数十个这样的复选框,并且想知道这样做的唯一方法是否是为每个复选框(例如地图名称 + 数据值)生成某种唯一的 id 以使标签正常工作?

4

2 回答 2

3

for您应该为属性值提供一个 id 。

for = string:指定用于指示与标题关联的表单控件。该属性的值必须是与标签元素在同一文档中的可标记表单关联元素的 ID。

文档

它停止工作,因为没有 id 元素enabled_data。为您指定一个 idinputs并将其作为for您各自标签的属性值提供。

<label for="check1">DATA VALUE</label>
<input type='checkbox' name='enabled_data' value='DATA VALUE' id="check1" />

此外,您在 2 个属性之间有一个逗号。

<input type='checkbox' name='enabled_data', value='DATA VALUE' />
                                          ^___________________
于 2013-07-11T20:59:49.907 回答
1

您看到的for指向元素 ID,而不是名称。

<label for="element_id">

看看这里W3C

于 2013-07-11T21:00:44.550 回答