2

在使用 iPad 时,单击下面表单的复选框标签不会使复选框被选中。我认为这应该发生,因为输入在标签内。谢谢

    <fieldset>
        <label class="form-cont-my-sep first-my"><input type="checkbox" name="checkbox-1" />Any</label>
        <label class="form-cont-my-sep"><input type="checkbox" />1</label>
        <label class="form-cont-my-sep"><input type="checkbox" />2</label>
        <label class="form-cont-my-sep"><input type="checkbox" />3</label>
        <label class="form-cont-my-sep"><input type="checkbox" />4</label>
        <label class="form-cont-my-sep"><input type="checkbox" />5</label>
        <label class="form-cont-my-sep"><input type="checkbox" />6</label>
    </fieldset>
4

4 回答 4

4

原来这是一个iOS 4 错误onclickfieldset修复此问题时添加一个空白。

于 2012-05-14T10:46:30.807 回答
1

您提供的代码确实有效。

另一种方法是通过 id 创建标签和复选框之间的关联。

这是通过id在复选框中添加一个并在for标签上的属性中引用它来完成的。

<label for="myCheckboxId">Foo</label><input type="checkbox" id="myCheckboxId" />

这是两种方法的工作示例

于 2012-05-14T10:30:57.657 回答
0

如果你把它放在标签中,它应该是开箱即用的——在这种情况下,你不需要标签的“for”属性:

<label><input type="checkbox" />Any</label>

如果你把它放在外面,那么你确实需要一个'for'属性:

<label for="myCheckBox">Any</label><input type="checkbox" id="myCheckBox" />

这是事物的 HTML 部分,但我看到了一个非常奇怪的问题,即生产服务器上的不可点击标签。

我不知道这是否是您的情况,但这就是我的“奇怪的复选框标签之谜”:它与 CakePHP 1.3 和 FormHelper 有关。经过一番摆弄,问题原来是 CentOS 的“与 perl 兼容的正则表达式”软件包的版本非常旧。升级到较新的修复它。我认为包名称是“pcre ...”。

于 2012-05-14T10:43:00.977 回答
0

我也遇到过这个问题。在我的例子中,设计是一个自定义的复选框/收音机实现,这意味着原始的复选框/收音机被完全隐藏,让用户无法改变他们的选择。

我在标签内也有表单元素。上面的 Fieldset 解决方案什么也没做。使用将标签绑定到表单元素for="<field-id>"也不起作用。

起作用的是:

<label onclick="this.querySelector('input').click()">
    <input type="radio" />
</label>
于 2017-05-23T10:33:25.860 回答