从asp:CheckBox获取文本

时间:2015-07-31 06:18:14

标签: javascript c# asp.net

我希望使用 JavaScript 获取asp:CheckBox的文字。

<asp:CheckBox ID="chkRoles" runat="server" Text="Testing" onclick="javascript:test(this);" />

如何从复选框中检索文本Testing?我试过以下,

的JavaScript

function test(obj)
{
    var text = obj.value;
}

3 个答案:

答案 0 :(得分:2)

您可以在javascript中使用checkbox.nextSibling.innerHTML,如下所示:

<script type="text/javascript">
        function changeCheckboxText(checkbox) {

            if (checkbox.checked) {
                alert(checkbox.nextSibling.innerHTML);
            }
        }
    </script>
  

nextSibling属性返回紧跟在之后的节点   指定的节点,在同一树级别。

代码:

CheckBox chk = new CheckBox();
chk.ID = "chkRoles";
chk.Text = "Check";
PlaceHolder1.Controls.Add(chk);
chk.Attributes.Add("onclick", "changeCheckboxText(this)");

还使用jQuery:

$("input:checkbox").click(function() {
  var $label = $(this).next('label');
  alert($label.text());
});

Reference

答案 1 :(得分:0)

如果您添加ClientIDMode =“静态”,则您的ID不会在客户端更改。

 <asp:CheckBox ID="chkRoles" runat="server" Text="Testing" ClientIDMode="Static" onclick="javascript:test(this);" />

你可以像这样用jquery来做这个

 function test(obj) {
        alert($(obj).next("label").html());
      }

答案 2 :(得分:0)

这段代码可以帮助你:

<script type = "text/javascript">
    function GetSelectedItem()
    {
    var text;
       var CHK = document.getElementById("<%=chkRoles.ClientID%>");
       var checkbox = CHK.getElementsByTagName("input");
       var label = CHK.getElementsByTagName("label");
       for (var i=0;i<checkbox.length;i++)
       {
           if (checkbox[i].checked)
           {
               text = label[i].innerHTML;
               alert("Selected = " + label[i].innerHTML);
           }
       }
       return false;
    }
    </script>