无法通过javascript检查复选框

时间:2016-01-13 15:14:11

标签: javascript jquery html checkbox

我在页面上有一个表单,带有一个复选框输入字段。我在页面上还有一个表,其中包含一个具有true / false值的列。表格中的每一行都有一个id="selectedReviewTypeYear"复选框。还有一个带id="getDataToEdit"的按钮。

单击getDataToEdit按钮时,javascript会检查是否检查了任何id="selectedReviewTypeYear"框。如果选中一个框,则打开一个div,其中表单字段根据所选行预先填充。如果未选中任何框,则div保持隐藏状态。

我的问题是,当表数据为“true”时,不会检查复选框。这是javascript:

    $('#getDataToEdit').on('click', function (){
    $('#reviewTypeTable').find('tr').each(function (){
        var row = $(this);
        if (row.find('input[id="selectedReviewTypeYearID"]').is(':checked')){
            var idx = table.row(this).index();
            var vReviewName = document.getElementById("editReviewTypeYear-name");
            var vAllowMultiple = document.getElementById("allowMultiple");
            var vAllowMultipleSpan = document.getElementById("allowMultipleSpan");
            vReviewName.innerHTML = table.cell(idx, 2).data();
            if (table.cell(idx, 3).data() == "true"){
                $("#allowMultiple").prop("checked", true);
                vAllowMultipleSpan.innerHTML = table.cell(idx, 3).data();
            }
            else {
                $("#allowMultiple").prop("checked", false);
                vAllowMultipleSpan.innerHTML = table.cell(idx, 3).data();
            }
            showHide.style.visibility = 'visible';
        }
    })
});

出于测试目的,我在名为span的表单中添加了allowMultipleSpan元素。这很简单,所以我可以看到javascript是否能够读取表字段中的数据。当我选择一行时,然后点击该按钮,div会打开,正确填充vReviewName.innerHTML以及正确填充allowMultipleSpan。但是,如果数据为“true”,则不会检查复选框。

我正在运行JQuery 2.1.1。到目前为止,我已尝试使用脚本的以下变体,所有变体都具有相同的结果:

来自JQuery(1.6+)规范:

$("#allowMultiple").prop("checked", true);

来自jQuery(1.5-)规范:

$("#allowMultiple").attr("checked", true);

来自Javascript规范:

document.getElementById("allowMultiple").checked = true;

以下是我的表单的HTML:

<div class="widget-header"><h3>Edit: <span id="editReviewTypeYear-name" style="color: blue"></span></h3></div>
                <div class="widget-content">
                    <form id="editReviewTypeYear-form" class="form-horizontal" url="submitReviewTypeYear.htm">
                        <div class="form-group">
                            <label class="col-sm-2 control-label">Allow Multiple: </label>
                            <div class="col-sm-10">
                                <input type="checkbox" id="allowMultiple" name="allowMultiple" />
                                <span id="allowMultipleSpan" style="color: blue"></span>
                            </div>
                        </div>
                        <div class="form-actions">
                            <button id="submitReviewTypeYear" type="submit">Save</button>
                            <button class="btn btn-small btn-warning reg-cancel" id="submitReviewTypeYear-cancel" type="button" name="Cancel" value="cancel">Cancel</button>
                        </div>
                    </form>
                </div>

1 个答案:

答案 0 :(得分:1)

您是否尝试过Author

您总是得到错误的条件,因为您将布尔值与“true”作为字符串进行比较。