-3

jQueryを使用して、次のhtmlテーブルのチェックされた行のJSONを取得する必要があります

JSON には、ユーザーがテキストボックスに入力したコメントが含まれている必要があります。どんなポインタでも役に立ちます。

<table id="potable_grid" class="tab">
    <thead>
        <tr>
            <th>
                select PO
            </th>
            <th>
                po id
            </th>
            <th>
                ponumber
            </th>
            <th>
                pocurrency
            </th>
            <th>
                balance
            </th>
            <th>
                thisinvoice
            </th>
            <th>
                thisinvoiceinInvoicecurrency
            </th>
            <th>
                comments
            </th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>
                <input type="checkbox" id="chckPO" />
            </td>
            <td>
                po001
            </td>
            <td>
                cuspo1
            </td>
            <td>
                usd
            </td>
            <td>
                10000
            </td>
            <td>
                200
            </td>
            <td>
                2
            </td>
            <td>
                <input type="text" id="txtPO" />
            </td>
        </tr>
        <tr>
            <td>
                <input type="checkbox" id="chckPO" />
            </td>
            <td>
                po002
            </td>
            <td>
                pocus125
            </td>
            <td>
                inr
            </td>
            <td>
                5000
            </td>
            <td>
                300
            </td>
            <td>
                18000
            </td>
            <td>
                <input type="text" id="txtPO" />
            </td>
        </tr>
    </tbody>
</table>

HTML Table to JSONのような多くの投稿を確認 しました

ただし、行に制御がない単純なhtmlテーブルでは機能します。

4

1 に答える 1

0
var $checked = $('#potable_grid :checked');

var data = [];

for(var i = 0; i != $checked.length; ++i)
{
  var $row = $($checked[i]).closest('tr');
  var text = $row.find(':text').val();

  data.push(text);
}

// data is now an array of all checked texts.

あなたの質問は漠然としていますが、これにより、チェックされた行を反復処理して必要な値を取得する方法について始めることができます。

ちなみに、すべてのテキストボックスに同じ 'id' を持つことは無効です。問題のレコードに関連付けられた「id」を知りたい場合は、po id「eg <input type="text" id="cuspo1" />. 次に、データ(JSON)をオブジェクトにすることができます。

var $input = $row.find(':text');

data.push({ id: $input.attr('id'), value: $input.val() });


// now data contains an array of { id, value };
于 2013-01-14T17:52:54.950 に答える