我正在尝试在检查表行时将序列号({{item [4]}})从表存储到数组中。我正在使用onchange函数将其存储到数组中。但是,它似乎仅适用于int。我该怎么做才能使其适用于字符串?
HTML代码:
{% for item in data %}
<tr>
<td>
<input type="checkbox" id="myCheck" name="myCheck" onchange="(countChecks({{item[4]}}))" value="1"/>
</td>
<td>{{item[0]}}</td>
<td>{{item[1]}}</td>
<td>{{item[2]}}</td>
<td>{{item[3]}}</td>
<td>{{item[4]}}</td>
<td>{{item[5]}}</td>
<td>{{item[6]}}</td>
</tr>
{% endfor %}
JavaScript代码:
var thisList = [];
function countChecks(serialNumber){
checksCounted = (document.querySelectorAll('input[type="checkbox"]:checked').length);
if(thisList.includes(serialNumber)){
alert("Duplicate entry, error: " + serialNumber + ". Try again.");
document.location.reload();
}
else if (!(thisList.includes(serialNumber))){
thisList.push(serialNumber);
}
alert(thisList);
}
因此,例如,当item [4] = 1234时。它将被存储到数组中。但是,如果item [4] = TX-1234,则不会将其推入数组,甚至不会调用该函数。
我尝试将function参数定义为字符串,但这似乎不起作用。请帮助我理解为什么代码无法正常工作。谢谢!
答案 0 :(得分:0)
由于数字有效,因此我认为该参数必须像countChecks('{{item[4]}}')
一样被引用。如果item[4]
的值为TX-1234
,则在服务器端处理后,代码看起来像countChecks(TX-1234)
。
<input type="checkbox" id="myCheck" name="myCheck" onchange="(countChecks('{{item[4]}}'))" value="1"/>