【问题标题】:jQuery and ASP.NET namesjQuery 和 ASP.NET 名称
【发布时间】:2010-10-10 10:25:44
【问题描述】:

获取由 ASP.NET 使用 jQuery 呈现的控件的正确方法是什么?

示例:我有一个这样生成的复选框:

<input id="ctl00_Content_chkOk" type="checkbox" name="ctl00$Content$chkOk" />

如果我想选择它来获取它是否被选中,我试过这个:

$('form input[name=chkOk]').attr("checked")

$('chkOk').attr("checked")

但它没有用,我不得不这样做

$('form input[name=ctl00$Content$chkOk]').attr("checked")

我想这也可以:

$('ctl00$Content$chkOk').attr("checked")

这是正确的方法吗?我可以使用其他选择器吗?

【问题讨论】:

    标签: asp.net jquery controls jquery-selectors


    【解决方案1】:

    可以使用服务器端控件ClientID属性:

    var isChecked = $('#<%=YourCheckBox.ClientID%>').attr("checked");
    

    或者您可以使用“结尾”选择器:attribute$=value

    var isChecked =  $('form input[name$=chkOk]').attr("checked");
    

    【讨论】:

      【解决方案2】:

      我一直使用这个符号

      $('#ctl00_Content_chkOk:checked').length; // will evaluate as true when checked
      

      【讨论】:

        【解决方案3】:

        你可以的

        $("input[id*=_chkOk]").attr('checked');

        【讨论】:

          【解决方案4】:
          $('#ctl00_Content_chkOk').attr('checked');
          $('form #ctl00_Content_chkOk').attr('checked');
          $('form input#ctl00_Content_chkOk').attr('checked');
          $('form input#ctl00_Content_chkOk[type="checkbox"]').attr('checked');
          

          选择一个;)

          【讨论】:

            【解决方案5】:

            是的,JQuery 只关心页面上呈现的内容,无论是通过 ASP.NET 引擎还是通过简单的 HTML,因此您必须通过 id 或名称访问它。您使用的两个底层版本与 $('#ct100_Content_chk0k').attr("checked") 一样好用。

            亚当

            【讨论】:

              【解决方案6】:

              我倾向于在两种方式之间来回走动。我要么使用 CMS 提到的控件的 clientID 属性,要么在后面的代码中生成 javascript 代码并使用页面的ClientScriptManager 将其写入浏览器。

              【讨论】:

                猜你喜欢
                • 2013-06-22
                • 1970-01-01
                • 2012-07-22
                • 2011-12-17
                • 1970-01-01
                • 2015-06-13
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多