0

javascript が入力されたテーブルがあり、ajax を介してデータを取得しています。私は<tr>クローンを作成し、ajax リクエストを介して取得したデータに値を設定するテンプレートを持っています。私は Twitter ブートストラップの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);
}
4

1 に答える 1

1

あなたの実際の問題が何であるかわからない、質問は私にはあまり明白ではありませんが、との間に違いがattrありvalます。メソッドはソース内の入力/要素のattr設定/変更を行いattribute、ブラウザの検査ツールを使用して表示される場合があります。一方、メソッドはメモリ内にあるレンダリングされたプロパティを設定/更新しますが、元のvalプロパティには影響しませんsource/HTMLブラウザのソースコード。たとえば、このようなことをすると

HTML:

<input type = "text" name="txt" id = "txt" value = "Hello!" />

JS:

$('#txt').val('World!').clone().insertAfter($('#txt'));

ソース コードを確認すると、2 つのinput要素があり、どちらも value 属性を持っていますHello!が、画面ではどちらもworld!. この詳細な回答を確認してください

于 2013-10-01T04:12:47.150 に答える