我需要有关我的JavaScript代码错误的帮助。我想要is_hadir == 1
,然后选中此复选框。
错误代码在此部分:
".if(data[i].is_hadir == 1){checked = true;}else{checked = false}."
这是我的代码
for (var i = 0; i<data.length;i++){
html = html +
"<tr>"+
"<td>"+data[i].nip+"</td>"+
"<td>"+data[i].nm_dosen+"</td>"+
"<td>"+data[i].email+"</td>"+
"<td>"+data[i].no_telp+"</td>"+
"<td><input type='checkbox' ".if(data[i].is_hadir == 1){checked = true;}else{checked = false}." name='Nip[]' onclick='cek(this,"+data[i].id_rapat+","+data[i].nip+")' value="+data[i].nip+"> </td>"+
"</tr>";
}
答案 0 :(得分:0)
首先,串联使用的是+
,而不是.
。其次,您需要使用ternary operator
"<td><input type='checkbox' " + (data[i].is_hadir == 1? 'checked' : '') + " name='Nip[...
答案 1 :(得分:0)
就像路易斯说的那样,您使用.
而不是+
进行串联,但是我也建议您使用template literals而不是串联,就像您正在做的那样。因为您可以将所有代码更改为如下所示,所以它将大大提高可读性和可编辑性:
html = `${ html }
<tr>
<td>${ data[i].nip }</td>
<td>${ data[i].nm_dosen }</td>
<td>${ data[i].email }</td>
<td>${ data[i].no_telp }</td>
<td>
<input type='checkbox'
checked='${ !!data[i].is_hadir }' name='${ Nip[] }'
onclick='cek(this, ${ data[i].id_rapat }, ${ data[i].nip })'
value='${ data[i].nip }'>
</td>
</tr>`;
此外,您可能应该在输入中添加事件侦听器,而不是直接注入onclick
中(您可能是通过这种方式引入了一些XSS错误),但这是一个单独的问题。
希望您能看到这如何改善当前代码。