javascript - 为什么发送单个参数的函数调用会突然收到整个元素?
问题描述
我有一个包含有关项目编号的各种信息的表格,其中每一行都有一个带有id="itemNumber"的数量输入字段和一个将项目编号提交给函数(onclick="addItemAndQuantity(itemNumber)")的按钮,然后找到通过从 id/item 编号获取输入字段值,从表中获取所有必要信息。
如果我输入一个数量并按下按钮,该函数会在第一次初始尝试时接收itemNumber。如果我然后对表格进行排序或切换到另一个页面,然后提交一个数量,该函数会接收带有 id 和类的整个输入元素,如下所示:input#itemNumber.form-control.w80
当我只传入一个字符串对象时,我显然对获取整个元素不感兴趣,当然也不期待这种行为。
该表由DataTables控制,这可能会影响行为,但我无法弄清楚,因此感谢您的帮助。
只要我在提交数量之前不过滤或排序表格,这就是我得到的 - 无论如何我每次都希望得到:
如果我对表格进行排序或导航到表格中的另一个页面,我会将整个输入元素传递给函数,而不仅仅是字符串对象:
该表的简化版本如下所示:
<table class="table table-sm table--hover table--bordered" id="dataTableAddItemToOrder">
<thead>
<tr>
<th scope="col">Item number</th>
<th scope="col">Description</th>
<th scope="col">Quantity</th>
<th scope="col">Actions</th>
</tr>
</thead>
<tbody>
@foreach (var listItem in Model.AllItems)
{
<tr>
<td>@listItem.ItemNumber</td>
<td>@listItem.Description</td>
<td>
<input type="text" id="@listItem.ItemNumber" name="itemQuantity" placeholder="0" class="form-control w80" autocomplete="off" />
</td>
<td>
<button type="button" class="btn hsa-btn-primary" onclick="addItemAndQuantity(@listItem.ItemNumber)">Add</button>
</td>
</tr>
}
</tbody>
</table>
脚本的简化版本是:
function addItemAndQuantity(itemNumber) {
let input = document.getElementById(itemNumber);
}
解决方案
对不起,我犯了一个错误,试试:
//your var
let input = document.getElementById(itemNumber);
//the value of text field:
input.value
推荐阅读
- javascript - 如何使用 jQuery 脚本交流 ReactJs?
- python - 访问小部件实例的“高度”属性
- javascript - Remove EventListener with a bind function
- mysql - SQL 查询:如何从关注中获取推文?
- python - 以通用或抽象的方式调用对象的方法
- asp.net-core - 如何替换 ASP.NET 核心中的依赖项?
- javascript - 尝试使用jquery发布内容时如何使用while或类似的东西来发送数据
- google-sheets - 在 Google 表格中组合不同的列和单元格
- reactjs - 如何在反应路由器 v4 中处理未找到的嵌套路由页面?
- apache-spark - 字数统计程序未在 spark 中产生所需的输出