JQuery if语句没有正确检测span复选框

时间:2016-02-22 21:29:30

标签: javascript jquery html checkbox

我有一个span复选框,我想查看是否已选中。

我认为由于某种原因它没有正确检测复选框。

我当前的代码(缩写 - 实际上有许多类似于#cb_head行的错误检查):

    function validate() {

    var errMessage = "";
    if (!$('#cb_head').is(":checked")) {
        errMessage += "Header\n";                
    }

    if (errMessage !== "") {
            errMessage += "Hasn\'t been verified, proceed with proof?";
            confirm(errMessage);
            return false;
        }
        else {
            return true;
        }

    }

复选框html:

<td class="dxflNestedControlCell_Office2010Black">
<span class="dxichCellSys dxeBase_DevEx dxeTAR" id="cb_head">
<span id="cb_head_S_D" class="dxICheckBox_DevEx dxichSys dxWeb_edtCheckBoxChecked_DevEx">
<input id="cb_head_S" name="ctl00$ctl00$ASPxSplitter1$Content$ContentSplitter$MainContent$ASPxCallbackPanel1$ASPxFormLayout3$cb_head" value="U" readonly="readonly" style="border-width:0;width:0;height:0;padding:0;margin:0;position:relative;background-color:transparent;display:block;" type="text">
</span></span>
</td>

所以这就是我试图让它工作但无济于事的方法:

查找复选框子元素: JQuery check if checkbox is NOT checked

我相信我遇到的错误是HTML中的某个地方,但我已尝试过ID:

cb_head_S_D
cb_head_S
cb_head

但它似乎还没有正确检测到正确的ID。

如果需要,很高兴提供更多信息。

2 个答案:

答案 0 :(得分:3)

来自the JQuery reference

  

:选中的选择器适用于复选框,单选按钮和选择元素。

问题是你试图用它来跨越。

答案 1 :(得分:0)

我认为,这不起作用的原因是因为你试图使用span元素,就像它是一个输入元素一样。 Spans不会检查&#34;&#34;&#34;&#34;&#34;&#34;属性,因此您无法检索此值。

我想你是在创建带有span标签的复选框,因为你可能更好地设计它们的样式。如果是这种情况,我建议您创建第二组隐藏输入以匹配您的可见范围复选框。选中span复选框时 - 您还应该使用新值更新隐藏的复选框,反之亦然。

然后,当时机成熟时,您可以执行.is(&#34;:checked&#34;)传递包含实际值的隐藏复选框。无论如何,你都无法从一个范围内本地提取数据。你需要在某个地方有一个匹配的输入对应部分。