Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery:如何检索动态创建的C#复选框的id_Jquery - Fatal编程技术网

JQuery:如何检索动态创建的C#复选框的id

JQuery:如何检索动态创建的C#复选框的id,jquery,Jquery,我正在使用page_load事件中的以下代码在我的asp页面上动态生成复选框: protected void Page_Load(object sender, EventArgs e) { for (int i = 23; i < 30; i++) { CheckBox cb = new CheckBox(); cb.ID = "chkd" + i.ToString(); cb

我正在使用page_load事件中的以下代码在我的asp页面上动态生成复选框:

 protected void Page_Load(object sender, EventArgs e)
    {
        for (int i = 23; i < 30; i++)
        {
            CheckBox cb = new CheckBox();
            cb.ID = "chkd" + i.ToString();
            cb.Text = "WI " + i.ToString();
            cb.AutoPostBack = true;
            cb.CssClass = "myCheckBoxes";
            Panel1.Controls.Add(cb);
            Panel1.Controls.Add(new LiteralControl("<br>"));
        }
    }
受保护的无效页面加载(对象发送方,事件参数e)
{
对于(int i=23;i<30;i++)
{
复选框cb=新复选框();
cb.ID=“chkd”+i.ToString();
cb.Text=“WI”+i.ToString();
cb.AutoPostBack=true;
cb.CssClass=“我的复选框”;
面板1.控件。添加(cb);
Panel1.Controls.Add(新的LiteralControl(“
”); } }
我正在尝试使用JQuery根据单击的复选框的id执行一个存储过程。但是,单击的框的id始终为空字符串。我刚刚被JQuery弄湿了脚,所以任何帮助都将不胜感激。下面是我的JQuery代码:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $(".myCheckBoxes").click(function (event) {
            $.ajax({
                type: "POST",
                url: "idChecker.aspx",
                data: "id=" + $(this).val(),
                success: function (msg) {
                    if (msg != "None" && !$("#chkd" + msg).is(':checked')) {
                        $("#chkd" + msg).trigger('click');
                    }
                }
            });
        });
    });

</script>

$(文档).ready(函数(){
$(“.mycheckbox”)。单击(函数(事件){
$.ajax({
类型:“POST”,
url:“idChecker.aspx”,
数据:“id=”+$(this.val(),
成功:功能(msg){
如果(msg!=“None”&&&&!$(“#chkd”+msg.).is(“:选中”)){
$(“#chkd”+msg).trigger('click');
}
}
});
});
});
数据:“id=“+$(this).val()将为您提供复选框的值。如果你想要身份证,试试看

data: "id=" + $(this).attr('id')

要获取您的id复选框,请尝试以下操作

data: "id=" + $(this).prop("id"); // if you use jquery 1.6.2

更新 我尝试了你的脚本,并注意到
.Net
为你的
复选框生成了html,作为
,类名为
mycheckbox
,它包含两个控件一个是你的复选框,另一个是复选框文本的
。因此,javascript操作绑定到
span
,因为它具有选择器中定义的类名,而没有id

  <span class="myCheckBoxes">
    <input id="MainContent_chkd26" type="checkbox" name="ctl00$MainContent$chkd26">
    <label for="MainContent_chkd26">WI 26</label>
  </span>

将$(this).val()替换为$(this).attr('id')

您可以稍微修改以调试: 请注意,
$(this.attr(“id”)
$(this).prop(“id”)取决于jQuery的版本。注意:如果可能的话,used.prop()作为1.6.2.attr()只是调用它,如果可以的话,这样可以避免一个步骤

我确实认为您可能会使用web服务或页面方法,而不是返回整个页面(*但我也不知道您的整个解决方案)(见下文)

假设:-以及您没有直接要求的其他建议。 服务器代码查找“id”字符串。 页面方法中的示例: 在页面的.cs文件中:

[WebMethod]
public static string checkId(string id)
{
    return id;
}
(请确保输入web.config设置以允许此操作)如果这不是您希望执行此操作的方式,请忽略:)


你能从.net代码中发布html吗?除了名称之外,
prop
attr
之间有区别吗?我使用的是jquery 1.6.2,我已经尝试了这两种方法,但仍然得到相同的结果。这就好像jquery无法访问id,因为控件是在服务器上生成的。可能是我在jquery的页面加载事件中调用的代码有问题。代码如下:要获取从jquery传递到页面加载事件的id,我使用Request[“id”]并尝试将该值传递到存储的进程。这是空的。我不知道如何查看Jquery代码以确保This对象的值不为null。这是否正确?是否确定已触发单击事件?
$(".myCheckBoxes input:checkbox")
$(".myCheckBoxes input[type=checkbox]")
$(".myCheckBoxes").find("input[type=checkbox]")
   $(document).ready(function () {
      $(".myCheckBoxes").click(function (event) {
        var pString = '{"id":"' + $(this).prop("id") + '"}';
    //alert(pString);//uncomment to debug
        $.ajax({
          type: "POST",
          url: "idChecker.aspx/checkId",
          data: pString,
          success: function (msg) {
            if (msg != "None" && !$("#chkd" + msg).is(':checked')) {
              $("#chkd" + msg).trigger('click');
            }
          }
        });
      });
    });
[WebMethod]
public static string checkId(string id)
{
    return id;
}
<system.web>
   <httpModules>
     <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
   </httpModules>
 </system.web> 
dataType: "jsond",
type: "POST",
contentType: "application/json",
converters: {
  "json jsond": function(msg) {
    return msg.hasOwnProperty('d') ? msg.d : msg; 
 }
},