我有一个用 javascript 填充的表,通过 ajax 获取数据。我有一个<tr>
模板,我克隆并将其中的值设置为通过 ajax 请求检索到的数据。我正在使用 Twitter bootstrap 的popovers,以便用户可以单击一个单元格,该单元格会弹出带有输入/选择等的弹出框,提示用户更改单元格值。当我设置这些输入的值时会出现问题。当我构建每一行时,我在弹出框模板中设置了输入的值.val('xxx')
,但是当我记录它/单击单元格并查看弹出框时,什么都没有改变;相反,如果我设置它.attr('value', 'xxx')
,它工作得很好..为什么.val('xxx')
不工作?
这是它的肉的样子..
行模板:
....
<td>
<div class="last-name popover-toggle">
<span class="vlabel">----</span>
<div class="popout">
<input type="text" name="last_name" value=""/>
<div class="popout-button-container">
<button type="button" class="btn btn-primary btn-small cancel-field">Cancel</button>
<button data-url="{{ url('edit_lead.json') }}" type="button" class="btn btn-primary btn-small save-field">Save</button>
</div>
</div>
</div>
</td>
....
设置输入值:
...
if (data['last_name']) {
$nRow.find('.last-name input[name=last_name]').val(data['last_name']);//.attr('value', data['last_name']);
$nRow.find('.last-name .vlabel').text(data['last_name']);
}
registerPopover($nRow.find('.last-name'), 'Last Name');
....
注册弹出框:
function registerPopover(el, title) {
var options = {
animation: false,
content: el.find('.popout').html(),
html: true,
trigger: 'manual'
};
if (typeof(title) != 'undefined') {
options['title'] = title;
}
el.popover(options);
}