![](/img/trans.png)
[英]Unable to check if a javascript checkbox array element is checked or not?
[英]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.