我有一個表填充了JavaScript,通過Ajax獲取數據。我有一個<tr>
模板,我克隆並設置通過ajax請求檢索到的數據內的值。我使用的是Twitter引導程序的popovers,以便用戶可以單擊單元格,該單元格用輸入/選擇等彈出彈出窗口,提示用戶更改單元格值。當我設置這些輸入的值時會出現問題。當我構建每一行時,我將彈出模板中的輸入值設置爲.val('xxx')
,但是當我記錄/單擊單元格並查看彈出窗口時,沒有任何更改;相反,如果我把它設置爲.attr('value', 'xxx')
,它工作得很好..爲什麼.val('xxx')
不工作?jQuery .val('xxx')沒有設置值,但.attr('value','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);
}
很難說出發生了什麼,你能在現場演示中重現問題嗎? – elclanrs
我覺得'$ nRow.find('。last-name')'會返回一組元素。你嘗試過使用'$ nRow.find('。last-name')。each(function(){/ * ... * /});'? –
@AlejandroIván我記錄了'$ nRow.find('。last-name input [name = last_name]')的結果,它只是一個元素,也是這樣想的:/ – bruchowski