我有一个带有复选框的gridview,我正在尝试查看是否选中了单击行的复选框。
<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;
});
});
警报($( “TD:有(:复选框:选中)”)文本());
此代码有效,但它会为所有行添加所选复选框。我只想知道是否选中了单击的行复选框。
答案 0 :(得分:0)
您需要使用选择器传递当前行的上下文
更改
alert($("td:has(:checkbox:checked)").text());
要
alert($("td:has(:checkbox:checked)", this).text());
我做了很少的改动,为演示制作了两行,这可以帮助你理解它是如何工作的,并简化了javascript。
<强> Live Demo 强>
$('#GridView1 tr').bind('click', function (event) {
alert($("td:has(:checkbox:checked)", this).length > 0 ? "Checked" : "Not checked");
});
从jQuery 1.7开始,.on()方法是首选的方法,用于将事件处理程序附加到文档。您可以阅读here
以上的内容