簡體   English   中英

無法通過JavaScript選中復選框

[英]Unable to check a checkbox via javascript

我在頁面上有一個表單,帶有復選框輸入字段。 我在頁面上還有一個表,其中的列具有true / false值。 表格中的每一行都有一個帶有id="selectedReviewTypeYear"的復選框。 還有一個帶有id="getDataToEdit"的按鈕。

單擊getDataToEdit按鈕時,javascript將檢查是否id="selectedReviewTypeYear"任何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';
        }
    })
});

為了進行測試,我在名為allowMultipleSpan的表單中添加了span元素。 這僅僅是為了讓我能看到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>

您是否嘗試過if (table.cell(idx, 3).data() == true)

您總是會得到錯誤的條件,因為您正在將布爾值與“ true”作為字符串進行比較。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM