我希望使用 JavaScript 获取asp:CheckBox
的文字。
<asp:CheckBox ID="chkRoles" runat="server" Text="Testing" onclick="javascript:test(this);" />
如何从复选框中检索文本Testing
?我试过以下,
的JavaScript
function test(obj)
{
var text = obj.value;
}
答案 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());
});
答案 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>