我在页面上有一个表单,带有一个复选框输入字段。我在页面上还有一个表,其中包含一个具有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>
答案 0 :(得分:1)
您是否尝试过Author
?
您总是得到错误的条件,因为您将布尔值与“true”作为字符串进行比较。