javascript函数参数仅采用int

时间:2019-02-22 15:09:31

标签: javascript html flask

我正在尝试在检查表行时将序列号({{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参数定义为字符串,但这似乎不起作用。请帮助我理解为什么代码无法正常工作。谢谢!

1 个答案:

答案 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"/>