1

チェックボックス付きのグリッドビューがあり、クリックされた行のチェックボックスがチェックされているかどうかを取得しようとしています。

<td>
<input type="button" id="upbutt" value="edit" />
</td><td>60</td><td>h767</td><td>itsatesthere</td><td>cat4</td><td><span class="aspNetDisabled" title="control"><input id="GridView1_ctl00_11" type="checkbox" name="GridView1$ctl13$ctl00" checked="checked" disabled="disabled" /></span></td>

 <td>
<input type="button" id="upbutt" value="edit" />
</td><td>55</td><td>F309</td><td>ahmeds</td><td>cat1</td><td><span class="aspNetDisabled" title="control"><input id="GridView1_ctl00_8" type="checkbox" name="GridView1$ctl10$ctl00" disabled="disabled" /></span></td>/tr>


    $(function () {

        var tr = $('#GridView1').find('tr');
        tr.bind('click', function (event) {
            var tds = $(this).find('td:not(:first-child)');


            $.each(tds, function (index, item) {
                if ('#txtbadd' + (index + 1) != '#txtbadd5') {
                    $('#txtbadd' + (index + 1)).val(item.innerHTML);
                    alert($("td:has(:checkbox:checked)").text());
                }
            });

            $("#modialog").dialog("open");
            return false;
        });
    });

alert($("td:has(:checkbox:checked)").text());

このコードは機能しますが、チェックボックスが選択されたすべての行が表示されます。クリックした行のチェックボックスがチェックされているかどうかを知りたいだけです。

4

1 に答える 1

0

セレクターで現在の行のコンテキストを渡す必要があります

変化する

alert($("td:has(:checkbox:checked)").text());

alert($("td:has(:checkbox:checked)", this).text());

デモ用に 2 つの行を作成するために少し変更を加えました。

ライブデモ

$('#GridView1 tr').bind('click', function (event) {
    alert($("td:has(:checkbox:checked)", this).length > 0 ? "Checked" : "Not checked");
});

jQuery 1.7 の時点で、.on() メソッドは、イベント ハンドラーをドキュメントにアタッチするための bind よりも優先されるメソッドです。ここでもっと読むことができます

于 2013-01-13T08:26:45.330 に答える