当我运行我的网络应用程序时,许多文本框带有初始值。当我更改文本框值并单击按钮然后更改值不反映相当旧的值返回。我第一次面对这个问题。我清除浏览器缓存但仍然没有运气。
这样我就可以从文本框中提取值。
alert(tr.find("input[id*='FirstName']").attr('value'));
OR
alert(tr.find("input[id*='FirstName']").val());
只是不明白为什么会这样。最后一天活动成功运行我的程序,但今天面临这个问题。我搜索谷歌但没有运气。寻求帮助来解决它。我试图复制问题in this fiddle,但在这里我没有遇到任何问题。
<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>
隐藏字段导致问题?
答案 0 :(得分:1)
隐藏的档案导致了这个问题。当您尝试获取包含FirstName的所有输入字段时,也会获取隐藏字段,因为它存在于同一行中且id包含FirstName。
忽略你可以做的隐藏文件
tr.find( “输入[ID * = '姓']”)。否( “输入[类型= '隐藏']”)
OR
tr.find( “输入[ID * = '姓']:不使用(类型=隐藏])”)
另请注意,如果您的查询结果将collection / array返回给其他函数,则默认情况下jquery仅从该集合中选取第一项并仅更改
EDIT 要回答评论中提出的问题,可以通过
找到文本值tr.find( “输入[类型= '文本'] [ID * = '姓']”)。VAL()
请记住,这将只获得第一个文本值。