1

入力フィールドとチェックボックスを持つ 2 つの列を持つページをレンダリングします。入力フィールドの 1 つのエントリを変更し、別の行のチェックボックスをオフにするとします。

[保存] ボタンをクリックして以下のコードを呼び出すと、新しい値でプロパティが変更されていないすべての画面上の行が表示されます (つまり、テーブルが最初に読み込まれたときの元の値と状態を取得しています)。

save: function() {
    var self = this;
    var data = JSON.stringify(this.dataTable.rowData());
    var url = this.urls.saveScreen;
    var ajaxOptions = { url: url, data: data, contentType: "application/json", type: "POST"};
}

受信に使用できる「this.dataTable.rowData()」とは異なる呼び出しがありますか?

a.) 変更された行のみ

b.) テーブルのロード後にユーザーが行った入力フィールドへの変更を含む行。

4

1 に答える 1

0

そのために隠しフィールドを使用できます。テーブル内の要素が変更された隠しフィールドを追加します。

$('table > *').change(function(){
    $(this).parent().append('<input type="hidden">changed</input>');
});

チェック中に、値が「変更された」非表示の入力フィールドを持つ行を検索できます

それがテーブルであると仮定します:

$('input:hidden :contains("changed"').each(function(){
    var row=$(this).closest('tr');
    var firstElement=row.find('td:eq("0")').text();
    var secondElement=row.find('td:eq("1")').text();
    // and so on
});

このコードはテストされていませんが、物事がどのように機能するかについての回避策を提供するはずです..

于 2013-05-08T19:56:08.820 に答える