我有一个asp:Listview
我已经填充了数据。单击一行时,其中一个单元格将table
替换为asp:TextBox
以允许编辑所选值并将焦点设置在文本框上。到目前为止,一切都很好。
当我不点击时,我可以按预期编辑值。但是,当我再次单击该input
控件时,其内容消失了。
$(document).ready(function () {
$('tr[id*="itemRow"]').click(function () {
$clickedRow = $(this);
var invNr = $clickedRow.find('span[id$="InvoiceNumber"]').text(),
newInvNr,
oldHtml = $clickedRow.find('span[id$="InvoiceNumber"]').html();
$clickedRow.find('span[id$="InvoiceNumber"]').html('<asp:TextBox ID="editInvNr" runat="server"></asp:TextBox>');
$clickedRow.find('input[id$="editInvNr"]').val(invNr).focus().focusout(function () {
//capture new invoice nr
newInvNr = $(this).val();
//switch textbox back to span using new invoice nr
$clickedRow.find('span[id$="InvoiceNumber"]').html(newInvNr);
//check if anything changed, if so update it in the db
if (newInvNr != invNr) {
//update new value to db
}
});
});
});
在此处的 jsfiddle中,我已将插入的 an 替换asp:TextBox
为常规的 htmlinput
元素,结果是相同的。您可以单击最后一列中的“1”以查看我看到的内容。我觉得我忽略了文本框控件的一些内置行为,如果我忽略了,那么我为我缺乏知识而道歉。
无论如何,我想要一些关于如何防止这种情况发生的指示。非常感激