I have a table which is populated with javascript, fetching data via ajax. I have a <tr> template which I clone and set the values within to the data retrieved via the ajax request. I'm using Twitter bootstrap's popovers, so that users can click on a cell, which pops the popover with an input/select etc prompting the user to change the cell value. The problem occurs when I am setting the value of those inputs. When I am building each row, I set the value of the input in the popover template with .val('xxx'), but when I log it/click the cell and view the popover, nothing is changed; conversely, if I set it with .attr('value', 'xxx'), it works just fine.. why would .val('xxx') not work?
Here's what the meat of it looks like..
Row template:
    ....
    <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>
    ....
Setting input value:
...
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');
....
Register popover:
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);
}
 
     
    