如何在服务器端的按钮单击处理程序中检索JavaScript数组?

如何在服务器端的按钮单击处理程序中检索JavaScript数组?,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我有以下jQuery: <script> $(document).ready(function () { $('#btnGetIDs').click(function getIDs() { var checkedIds = $(":checkbox:checked").map(function () { return this.id; }).get(); });

我有以下jQuery:

<script>
    $(document).ready(function () {
        $('#btnGetIDs').click(function getIDs() {
            var checkedIds = $(":checkbox:checked").map(function () {
                return this.id;
            }).get();
        });
    });
</script>
那么,如何从btnConfirm\u Click事件访问jQuery数组呢


我尝试了一行scriptmanager代码,但它导致母版页上的scriptmanager出现错误。

将name属性添加到复选框标记中

results.Append("<td><input id='" + RosteredCareID + "' type='checkbox' name='" + RosteredCareID  + "' unchecked /></td>");
如果选中该值,它将在其中

可能有很多表单值,因此您需要对它们进行筛选,以仅获取所需的内容。我建议你在名字前面加上一个特殊的字符串。例:

results.Append("<td><input id='" + RosteredCareID + "' type='checkbox' name='RosterCareCB_" + RosteredCareID  + "' unchecked /></td>");
results.Append(“”);
然后在服务器端,过滤该前缀

var checkedIds = new List<string>();
foreach (var name in Request.Form.AllKeys)
{
    if(name.StartsWith("RosterCareCB_") && Request.Form[name] == "on")
    {
        checkedIds.Add(name);
    }
}
var checkedds=new List();
foreach(Request.Form.AllKeys中的变量名)
{
if(name.StartsWith(“RosterCareCB”)和&Request.Form[name]=“on”)
{
选中edids.Add(名称);
}
}

您提到了一个错误和您尝试过的东西。但是你没有显示你尝试了什么或者错误是什么。你不应该让我们猜。您还需要显示复选框的标记,以获得完整的问题。请看。您混淆了服务器端和客户端事件。为什么这个问题需要jQuery/Javascript?您是通过Ajax提交的吗?您不需要这种手动逻辑来收集复选框。使用
form.serializeArray()
-我可以在foreach上看到我的RosteredCareID保存在Request.form.AllKeys中的特征线。页面中还有一个viewstate和一些控件。我怎么才能拿出我的身份证?也谢谢你提供的关于单引号的提示!它说当我尝试运行时,密钥不存在it@JoshCooper那么密钥就不存在了。就像我说的,他们只有经过检查才会出现在那里。如果我是你,我会用一种特定的命名格式来命名我的ID,这样你就知道要提取哪些表单值。然后检查他们是否在里面。如果他们在那里,然后再次检查张贴的价值,以确保100%的检查。然后你就会知道检查了什么,你可以做进一步的处理。当我响应时,写下请求的内容,我得到_ueventtarget _; EVENTARGUMENT _; VIEWSTATE 78 91 92 93 ctl00$contentplaceholder 2$ddlReason ctl00$contentplaceholder 2$btnConfirm ctl00$contentplaceholder 2$hdnCheckedds。只有4-7个ID我怎么才能得到这些?@JoshCooper这就是为什么我说使用某种命名格式。例如,如果名称始终以“RosterCareCB”开头,则过滤名称以“RosterCareCB”开头的检索值
foreach (var name in Request.Form.AllKeys)
{
    System.Diagnostics.Debug.WriteLine("Form Name: " + name + " Form Value: " + Request.Form[key]);
}
results.Append("<td><input id='" + RosteredCareID + "' type='checkbox' name='RosterCareCB_" + RosteredCareID  + "' unchecked /></td>");
var checkedIds = new List<string>();
foreach (var name in Request.Form.AllKeys)
{
    if(name.StartsWith("RosterCareCB_") && Request.Form[name] == "on")
    {
        checkedIds.Add(name);
    }
}