当单击标注时,复选框不会选中

时间:2014-06-20 作者:Kevin Nugent

我不确定这是否是WordPress特定的问题,但当我在侧边栏中创建一个简单表单作为小部件时,当我单击标签时,复选框不会选中。奇怪的是,当我通过get\\u template\\u部分将相同的表单拉入导航时,它确实可以工作。我想使用“复选框破解”,它依赖于标签的可点击性。我的表单如下所示:

<form action="http://email.littlefishfx.com/t/r/s/jijiat/" method="post">
    <p class="checks">
        <input id="fieldjtdktry-0" name="cm-fo-jtdktry" value="4469820" type="checkbox" /> <label for="fieldjtdktry-0"><span></span>Learn</label>
        <input id="fieldjtdktry-1" name="cm-fo-jtdktry" value="4469821" type="checkbox" /> <label for="fieldjtdktry-1"><span></span>Trade</label>
        <input id="fieldjtdktry-2" name="cm-fo-jtdktry" value="4469822" type="checkbox" /> <label for="fieldjtdktry-2"><span></span>Invest</label>
        <input id="fieldjtdktry-3" name="cm-fo-jtdktry" value="4469823" type="checkbox" /> <label for="fieldjtdktry-3"><span></span>Spend</label>
    </p>
    <p>
        <input id="fieldEmail" name="cm-jijiat-jijiat" type="email" required placeholder="Your email address" />
        <br />
        <button type="submit"><span>Subscribe</span></button>
    </p>
</form>
这两种形式都可以在littlefishfx找到。com/contact,一个从主菜单“订阅”按钮中下拉,另一个(相同的表单)在侧边栏的最底部。

关于为什么会发生这种情况,有什么建议吗?Chrome、Safari和Firefox(mac)也有同样的结果。

**编辑**

如果我将复选框包装在标签中,如

<label><input id="fieldjtdktry-0" name="cm-fo-jtdktry" value="4469820" type="checkbox" /><span></span>Learn</label>
然后,标签点击在所有方面都起作用。这看起来是一个最佳实践解决方案(?)但让我困惑的是,如何使用我最初试图实现的复选框黑客。以下是我一直在研究的CSS:

input[type="checkbox"] {
    display:none;
}
input[type="checkbox"] + label span {
    display: inline-block;
    width: 20px;
    height: 20px;
    margin: -1px 6px 0 0;
    vertical-align: middle;
    background: url(images/checkbox-sprite.gif) left top no-repeat;
    cursor: pointer;
}
input[type="checkbox"]:checked + label span {
    background: url(images/checkbox-sprite.gif) right top no-repeat;
}

3 个回复
SO网友:Kevin Nugent

好吧,以防这对其他人有用。我关注的最初的复选框hack tut来自here.

我绕过了WordPress中的问题,将复选框包装在标签中,如

<label><input id="fieldjtdktry-0" name="cm-fo-jtdktry" value="4469820" type="checkbox" /><span></span>Learn</label>
然后调整CSS选择器以读取

label input[type="checkbox"] + span {
而不是原来的

input[type="checkbox"] + label span {
很有魅力!

SO网友:davexpression

我也有同样的问题,但你的回答没有解决。所以,如果有人仍然面临这个挑战,请确保值的标签与输入的id一致。这为我解决了这个问题。

即:

<label for="love">

<input type="checkbox" id="love"/>

信用证:https://stackoverflow.com/questions/6712029/label-not-working-with-checkbox/#answer-6712054

SO网友:LeMike

重新加载页面,单击两个并记住它们。然后禁用任何CSS。您将看到它们已被选中。因此,一些尴尬的事情是设置您的复选框的样式。

您可以卸载CSS。。。

。。。in Firefox 通过选择“查看”>“页面样式”>“无样式”

。。。in Chrome 通过安装“WebDeveloper”扩展并选择“CSS”>“禁用所有CSS”

结束

相关推荐

Print Cforms form as pdf

我使用创建了一个表单Cforms from Delicious. 客户要求我提供将此表单打印为pdf的选项。我尝试了一些插件,比如Print Friendly and PDF Button 这样就可以添加pdf或打印按钮,但该按钮随后会添加到所有页面,并且大多数情况下表单不会显示在打印预览/打印输出中。有人知道我怎么做吗?