文本输入的更改值未返回

时间:2016-01-19 17:12:48

标签: jquery html dom jquery-selectors

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

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

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>

隐藏字段导致问题?

1 个答案:

答案 0 :(得分:1)

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

忽略你可以做的隐藏文件

  

tr.find( “输入[ID * = '姓']”)。否( “输入[类型= '隐藏']”)

OR

  

tr.find( “输入[ID * = '姓']:不使用(类型=隐藏])”)

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

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

找到文本值
  

tr.find( “输入[类型= '文本'] [ID * = '姓']”)。VAL()

请记住,这将只获得第一个文本值。