我在頁面上有一個表單,帶有複選框輸入字段。我在頁面上也有一個表格,其中有一個具有真/假值的列。表中的每一行還有一個複選框id="selectedReviewTypeYear"
。還有一個按鈕id="getDataToEdit"
。無法通過javascript檢查複選框
當點擊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>
你試過了嗎if(table.cell(idx,3).data()== true)'? –
「getDataToEdit」和「reviewTypeTable」的HTML在哪裏?請發佈完整的代碼示例。另外,你會得到什麼錯誤控制檯? – j08691
@LucasRodrigues - aaaaand就是這樣。任何想法如果測試會改變結果?就像我說的那樣,跨度仍然在填充正確的值,所以從所有跡象看,好像測試正確地開始了。 – QuestionMarks