0

我正在尝试根据复选框中的真值或假值执行操作。使用 If:Else 语句,我测试复选框值是否为“true”,即使复选框值标记为“true”,它也会进入我语句的 Else 部分。

谁能给我解释一下这个原因?

        var CheckedBoxs = $(stepTitle + " input:checkbox");
        for (var val in CheckedBoxs) {
            if (val.toString() === "length") {
                break;
            } //End IF
            if (CheckedBoxs[val].value === "true") {
                OneUp = parseInt(val) + 1;
                var PriceTag = "  -$";
                PriceTag += HiddenInput[OneUp].name.substring(HiddenInput[OneUp].name.indexOf(":") + 1, HiddenInput[OneUp].name.length);
                Lbls[val].innerHTML = Lbls[val].innerHTML + '<span class="PriceChange">' + PriceTag + "</span>";
            } else {
                OneUp = parseInt(val) + 1;
                var PriceTag = "  +$";
                PriceTag += HiddenInput[OneUp].name.substring(HiddenInput[OneUp].name.indexOf(":") + 1, HiddenInput[OneUp].name.length);
                Lbls[val].innerHTML = Lbls[val].innerHTML + '<span class="PriceChange">' + PriceTag + "</span>";
            }//End If
        }//End For

我已经看到了许多与 If:Else 语句相关的问题,但无法找到一个涉及复选框的问题,如果这是重复的话,我们深表歉意。

4

1 回答 1

3

两件事情

第一的

for (var val in CheckedBoxs) {

那不是如何循环数组;仅在对象文字的属性上使用该循环。

第二

if (CheckedBoxs[val].value === "true") {

应该

if (CheckedBoxs[val].checked) {

编辑,小提琴

于 2013-04-25T19:32:36.220 回答