我正在尝试获得一个弦乐的结果,即"选择A,b,c"。
但是,使用以下代码,如果我检查了所有三个框,我只能生成:选择a,选择A,B,该人选择了A,B,C,
我不希望生成的笔记有3个单独的行。
var notes = "";
var reason = "";
for (j=0; j<document.reason.reasonqst.length; j++){
if (document.reason.reasonqst[j].checked==true){
notes += "The person selected";
if (j==0)
reason += "A, ";
if (j==1)
reason += "B, ";
if (j==2)
reason += "C,";
notes += "" + reason + "r";
}
}
<form id="reason" name="reason" method="post" action="">
<table>
<tr>
<td>BPC: <input onclick="ds_sh(this);" name="reason" id="reason" readonly="readonly" style="cursor: text" /><br /></td>
</tr>
<tr>
<td style="width: 120px;"><input type="checkbox" name="reasonqst" id="reasonqst" />A</td>
<td style="width: 120px;"><input type="checkbox" name="reasonqst" id="reasonqst" />B</td>
<td style="width: 120px;"><input type="checkbox" name="reasonqst" id="reasonqst" />C</td>
</TR>
</table>
</form>
移动注释变量外部循环并附加单个值
notes = "The person selected";
for (j=0; j<document.reason.reasonqst.length; j++){
if (document.reason.reasonqst[j].checked==true){
if (j==0)
reason += " 1";
if (j==1)
reason += ", 2 ";
if (j==2)
reason += ", 3";
}
}
notes += "" + reason + "r";
我建议您一个更轻的版本,您可以获利您的变量和最终值几乎相同,其差异仅具有1个差异值:
var reason = "";
let personsSelected = [];
for (j=0; j<document.reason.reasonqst.length; j++){
if (document.reason.reasonqst[j].checked==true){
personsSelected.push(j+1);
}
}
let notes = `The person selected ${personsSelected.join(',')}` + "r";