【问题标题】:javascript function arguments only taking int [duplicate]javascript函数参数仅采用int [重复]
【发布时间】:2019-02-22 15:09:30
【问题描述】:

当检查表行时,我试图将序列号 ({{item[4]}}) 从表中存储到数组中。我正在使用 onchange 函数将其存储到数组中。但是,它似乎只适用于整数。我该怎么做才能使它适用于字符串?

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,它不会被压入数组,甚至不会调用该函数。

我尝试将函数参数定义为字符串,但这似乎不起作用。请帮助我理解为什么代码不起作用。谢谢!

【问题讨论】:

  • 您认为onchange="countChecks(foobarstring)" 有什么问题,如果是var myVariable = foobarstring,这是一个简单的情况,您没有引用您的字符串,因此引擎正在寻找变量...
  • 所以你有一些服务器端代码正在生成 JavaScript,嵌入在 HTML 中,你已经将问题缩小到“它不起作用”。那是not helpful。使用浏览器中的开发人员工具。看看控制台。查看是否有错误信息。查看您正在生成的 JS。独立测试。查看您生成的嵌入了 JS 的 HTML。这是你所期望的吗?它是有效的 HTML 吗?

标签: javascript html flask


【解决方案1】:

由于数字有效,我认为参数需要像countChecks('{{item[4]}}') 一样引用。如果item[4] 的值为TX-1234,则在服务器端处理后代码将类似于countChecks(TX-1234)

<input type="checkbox" id="myCheck" name="myCheck" onchange="(countChecks('{{item[4]}}'))" value="1"/>

【讨论】:

  • 非常感谢 zmag,这就是解决方案!不敢相信我没想到
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-05-16
  • 2018-01-28
  • 1970-01-01
  • 2014-05-10
  • 1970-01-01
  • 1970-01-01
  • 2016-01-11
相关资源
最近更新 更多