0

我有一个Checkbox里面有 10 件物品GridView

<ItemTemplate>
   <asp:CheckBox ID="chkGrid" name = "sample1" class = "messageCheckbox" runat="server"    onclick="javascript:SelectCheckedItem(this)" Text = '<%# Bind("status_desc") %>'  />
</ItemTemplate>

我想要的是获取CheckBox内部的值GridView。如果我使用 VB,我会得到这些值。我想要的是通过 JavaScript 获取它。这是我的 JavaScript 代码:

function SelectCheckedItem(itemchk) {
            debugger
            var gvcheck = document.getElementById('gvDetails'); //This is the ID of the GridView
            if (itemchk.checked) {
                var checkedValue = $('messageCheckbox:checked').val();
                alert(checkedValue);
            }

            else {

                }
            }

        }

但我得到了未定义的价值。

请帮忙。谢谢你。

4

2 回答 2

1
<asp:CheckBox ID="chkGrid" Text="Status" runat="server" />

将呈现如下内容(注意id由于 的变化runat="server"

<input type="checkbox" id="chkGrid_ctl01" />
<label for="chkGrid_ctl01">Status</label>

因此,要获取每个复选框中的文本,label您需要遍历复选框并找到相邻的标签。

要获得label仅单击的复选框,您可以执行以下操作

function SelectCheckedItem(itemchk) {
    if (itemchk.checked) {
        var checkedValue = $(itemchk)
            .siblings('label[for="' + itemchk.id '"]')
            .text();
        console.log(checkedValue);
    }
}

但是要获得所有标签,您必须遍历每个带有类的复选框.messageCheckbox

function SelectCheckedItem() {
    $('.messageCheckbox:checked').each(function () {
        console.log($(this).siblings('label[for="' + itemchk.id '"]').text());
    });
}
于 2013-11-14T03:15:12.837 回答
1

GridView 的 ID 很可能不是gvDetails.NET 在您的 ID 中添加一个完整的额外字符串。您需要考虑gvDetails.ClientID在服务器端使用

var gvcheck = document.getElementById(<% gvDetails.ClientID %>); // This is the generated ID of the GridView
于 2013-11-14T03:15:39.847 回答