我试图从动态加载的HTML中更改输入字段值。但是,我似乎找不到合适的代码。
以下是我正在使用的代码:
$.get('/js/dynamic/locations', function(newRow) {
var existing_elem = $('.edit-table tr:last').after(newRow);
var appendedRow = $('table tr:last-of-type');
appendedRow.find('td[data-th="Name"] > span').text(v.location_name);
appendedRow.find('td[data-th="Name"] > input').val(v.location_name);
});
范围文本正在正确更新,但输入值根本没有更新。
这是newRow的值:
<tr>
<td data-th="Name">
<span class="edit-input-text"></span>
<input class="inp input-edit" type="text" name="location_name" value="">
</td>
<td data-th="Address"><span class="edit-input-text"></span>
<input class="inp input-edit" type="text" name="address" value="">
</td>
</tr>
答案 0 :(得分:1)
根据您的HTML结构和代码,我可以告诉确定它很好并且输入值确实已更新。
您混淆的原因在于属性和属性之间的区别。他们不一样。你如何测试输入值是否已经改变?
因为我在Firebug中查看源代码。跨度得到更新,但输入值没有。
您需要了解,因为您使用val
方法更新输入 - 您正在设置输入值属性,而不是属性。除非您使用setAttribute
方法(jQuery中为attr
)直接更新属性,否则属性不会更改。