Javascript 在显示在UI中之前,使用jquery选中复选框
我的情况如下: 我从mysql数据库中读取数据,然后使用jsp、servlet和jquery将其显示在表中。 我正在创建动态行。我的问题是我想根据DB中的值选择复选框。以下是示例代码:Javascript 在显示在UI中之前,使用jquery选中复选框,javascript,jquery,jsp,checkbox,Javascript,Jquery,Jsp,Checkbox,我的情况如下: 我从mysql数据库中读取数据,然后使用jsp、servlet和jquery将其显示在表中。 我正在创建动态行。我的问题是我想根据DB中的值选择复选框。以下是示例代码: $.ajax({ url: 'FetchQAStatus', type: 'POST', contentType: 'text/html', success: function (da
$.ajax({
url: 'FetchQAStatus',
type: 'POST',
contentType: 'text/html',
success: function (data) {
console.log(data);
var tbody = $('#edit_table_body');
$.each(data, function(key,value) {
tbody.append('<tr><td>'+value['id']+'</td><td><select name="project" id="project" class="project"><option value="Geo">Geo</option>'+
'<option value="UAC">UAC</option></select></td><td><input type="text" name="jira" id="jira" class="freshblue" value="'+
value['jira']+'"/>'+'<td><textarea name="summary" id="summary" >'+value['summary']+'</textarea></td><td>'+
'<input type="text" name="status" id="status" class="freshblue" value="'+value['status']+'"/></td>'+
'<td><textarea name="comments" id="comments" >'+value['comments']+'</textarea></td><td><input type="checkbox" '+
'name="prod_deploy" id="prod_deploy">'+
'</td></tr>');
$(this).find("input#prod_deploy").prop("checked", true);
});
$(".edit_status").slideToggle();
},
但这并不是选择复选框,因为该复选框在UI上仍然不可见/不加载。
请帮助您可以执行以下任一操作:
...
var content = '<tr>'
+ '<td>' + value['id'] + '</td>'
+ '<td>'
+ '<select name="project" id="project" class="project">'
+ '<option value="Geo">Geo</option>'
+ '<option value="UAC">UAC</option>'
+ '</select>'
+ '</td>'
+ '<td>'
+ '<input type="text" name="jira" id="jira" class="freshblue" value="' + value['jira'] + '"/>'
+ '</td>'
+ '<td>'
+ '<textarea name="summary" id="summary" >' + value['summary'] + '</textarea>'
+ '</td>'
+ '<td>'
+ '<input type="text" name="status" id="status" class="freshblue" value="' + value['status'] + '"/>'
+ '</td>'
+ '<td>'
+ '<textarea name="comments" id="comments" >' + value['comments'] + '</textarea>'
+ '</td>'
+ '<td>'
+ '<input type="checkbox" name="prod_deploy" id="prod_deploy" checked>'
+ '</td>'
+ '</tr>';
tbody.append(content);
$(content).find('input#prod_deploy').prop('checked', true);
或者这个:
...
var content = '<tr>'
+ '<td>' + value['id'] + '</td>'
+ '<td>'
+ '<select name="project" id="project" class="project">'
+ '<option value="Geo">Geo</option>'
+ '<option value="UAC">UAC</option>'
+ '</select>'
+ '</td>'
+ '<td>'
+ '<input type="text" name="jira" id="jira" class="freshblue" value="' + value['jira'] + '"/>'
+ '</td>'
+ '<td>'
+ '<textarea name="summary" id="summary" >' + value['summary'] + '</textarea>'
+ '</td>'
+ '<td>'
+ '<input type="text" name="status" id="status" class="freshblue" value="' + value['status'] + '"/>'
+ '</td>'
+ '<td>'
+ '<textarea name="comments" id="comments" >' + value['comments'] + '</textarea>'
+ '</td>'
+ '<td>'
+ '<input type="checkbox" name="prod_deploy" id="prod_deploy" checked>' // <== notice the "checked" attribute here
+ '</td>'
+ '</tr>';
tbody.append(content);
这个问题解决了。如果有人正在寻找,请发布答案:
var prodCheck = (value['isProd'] == true) ? "checked":"";
var content = '<tr><td>'+value['id']+'</td><td><select name="project" id="project" class="project"><option value="Geo">Geo</option>'+
'<option value="UAC">UAC</option></select></td><td><input type="text" name="jira" id="jira" class="freshblue" value="'+
value['jira']+'"/>'+'<td><textarea name="summary" id="summary" >'+value['summary']+'</textarea></td><td>'+
'<input type="text" name="status" id="status" class="freshblue" value="'+value['status']+'"/></td>'+
'<td><textarea name="comments" id="comments" >'+value['comments']+'</textarea></td><td><input type="checkbox" '+
'name="prod_deploy" class="prod_deploy" '+prodCheck+'>'+
'</td></tr>';
tbody.append(content);
下面是代码,您可以在显示复选框之前将其显示为选中状态
<input type="checkbox" checked="true" />
现在,如上所述,在要显示选中复选框的位置追加。不可见或未选中?您正在添加许多具有相同ID的元素;那不会有好结果的。另外,每个方法内部的上下文是否和tbody相同?您正在向其中添加新元素,但在$this中检查新添加的元素。。。不确定您要在那里做什么。@heinob不可见,我的意思是我正在创建元素,但它没有显示在中UI@Derek请忽略id部分,我知道它不正确,我没有在我的代码中使用它。每个方法基本上都是针对数据库中的所有数据,我迭代每一行,然后在表中创建一行。希望这能澄清这些都不起作用。我想问题是这张表还没有显示出来。它基本上会在最后一行$之后加载。edit_status.slideToggle;