我想更新位于文本框旁边的隐藏字段的值。原因是因为它在.net中继器内部,所以我无法从没有回传的代码中更新它,这需要很长时间。使用jquery更新中继器的隐藏字段值
HTML
<asp:Repeater ID="rptTranslations" runat="server" OnItemDataBound="rptTranslations_ItemDataBound">
<ItemTemplate>
<tr id="rptRow" runat="server" class="form-line-input">
<td>
<asp:TextBox ID="txtEnglish" runat="server" ReadOnly="true" Text="" Width="475px"></asp:TextBox></td>
<td>
<asp:HiddenField ID="hiddenRecordId" runat="server" Value='<%# DataBinder.Eval(Container.DataItem, "recordId") %>' />
<asp:HiddenField ID="hiddenUpdated" runat="server" Value='false' />
<asp:TextBox ID="txtLanguage" runat="server" CssClass="jq-translation" Text="" Width="475px"></asp:TextBox></td>
</tr>
</ItemTemplate>
</asp:Repeater>
jQuery的 我用 '名',因为当HTML返回到浏览器的名称是 'ctl00 $ ContentPlaceHolder1 $ rptTranslations $ ctl00 $ hiddenUpdated' 和ID有额外的文本最后。
$(document).ready(function() {
$('.jq-translation').change(function() {
$(this).closest("[name$='hiddenUpdated']").val("true");
});
});
更新文本框时,隐藏字段的值不会更改。
你用'id * = hiddenUpdated'试过了吗? – 2014-10-31 16:33:21
最接近DOM树中的祖先,而不是兄弟姐妹。因此,尽量使用http://api.jquery.com/siblings/ – lshettyl 2014-10-31 16:37:23