文本输入的更改值未返回

Posted

技术标签:

【中文标题】文本输入的更改值未返回【英文标题】:Text input's changed value not returning 【发布时间】:2016-04-25 06:56:27 【问题描述】:

当我运行我的网络应用程序时,许多文本框都带有它们的初始值。当我更改文本框值并单击按钮时,更改值并没有反映出旧值正在返回。我第一次面对这个问题。我清除了浏览器缓存,但仍然没有运气。

这样我从文本框中提取值。

alert(tr.find("input[id*='FirstName']").attr('value'));
OR
alert(tr.find("input[id*='FirstName']").val());

只是不明白为什么会这样。最后一天的事件成功运行了我的程序,但今天面临这个问题。我搜索谷歌,但没有运气。寻求帮助来解决它。我尝试复制问题in this fiddle,但在这里我没有遇到任何问题。

我在 td 中的 html 如下所示

<td class="NameColWidth">
    <span class="display-mode">Sandip</span>
    <input type="hidden" id="HiddenFirstName" value="Sandip" name="HiddenFirstName">
    <input type="text" value="Sandip" name="Students[0].FirstName" id="Students_0__FirstName" data-val-required="First Name Required" data-val="true" class="edit-mode" style="display: none;">
    <span data-valmsg-replace="true" data-valmsg-for="Students[0].FirstName" class="field-validation-valid text-danger"></span>
</td>

导致问题的隐藏字段?

【问题讨论】:

可以得到输入$("#HiddenFirstName").val()的值 我只是删除了隐藏字段,程序开始工作。谁能说出为什么隐藏字段会导致问题? 在 jQuery 对象(代表一组节点,而不仅仅是单个节点)上调用 .val() 将返回单个值。 jQuery 选择集合中的第一个节点进行询问,因此您得到了隐藏输入的值,正如您所料。要么更具体地定位您的元素,要么过滤掉隐藏的输入。 tr.find("input[id*='FirstName']" 将找到完全隐藏的字段并返回其值 如何在此处指定文本以及输入 tr.find("input[id*='FirstName']").val() ? 【参考方案1】:

隐藏文件导致了问题。当您尝试获取 id 包含 FirstName 的所有输入字段时,也会获取隐藏字段,因为它存在于同一行中并且 id 包含 FirstName。

忽略你可以做的隐藏文件

tr.find("input[id*='FirstName']").not("input[type='hidden']")

tr.find("input[id*='FirstName']:not([type=hidden])")

另请注意,如果您的查询结果将集合/数组返回给其他函数,则 jquery 默认情况下仅从该集合中选取第一项并仅对其进行更改

编辑 要回答评论中提出的问题,您可以通过

找到文本值

tr.find("input[type='text'][id*='FirstName']").val()

记住,这只会得到第一个文本值而不是全部。

【讨论】:

如何在此处指定文本以及输入 tr.find("input[id*='FirstName']").val() ? 我可以写类似 tr.find("input type='text' [id*='FirstName']").val() 的东西吗? 给出只选择输入和输入文本的新代码? tr.find(input[type='text'][id*='FirstName']").val() 你可以这样做。但记住这只会得到第一个元素值 我会尽力让你知道的。

以上是关于文本输入的更改值未返回的主要内容,如果未能解决你的问题,请参考以下文章

文本字段更改的值未在 OnSubmit 中更新 - React-Hook-Form 和 React Js

Vue单元测试输入值未设置

值未插入数组中,数组返回空白值

生成的Matrix值未正确返回

06 finally 中调整返回对象, 但是最终返回值未改变

06 finally 中调整返回对象, 但是最终返回值未改变