查找 HTML 复选框
本文关键字:复选框 HTML 查找 | 更新日期: 2023-09-27 18:30:59
如何从 C# 找到动态生成的 HTML 复选框。需要通过 id 找到它们并将其标记为选中。
此代码首先生成 HTML:
StringBuilder sbHtml = new StringBuilder("");
sbHtml.Append("<div class='"checkboxBtn'">");
sbHtml.Append("<input type='"checkbox'" runat='"server'"
class='"chkBx'" id='"" +
Convert.ToString(someid) + "'" />");
sbHtml.Append("<label>Compare</label>");
sbHtml.Append("</div>");
并且呈现的 HTML 是
<div class="checkboxBtn">
<span class="uncheked"></span>
<input type="checkbox" runat="server" class="chkBx" id="23"></input>
<label>Compare</label>
</div>
有很多这样的复选框,我想通过ID找到它们
string[] PhoneIds = {"11","23","43"};
foreach(string id in PhoneIds)
{
HtmlInputCheckBox cBox = form1.FindControl(id) as HtmlInputCheckBox;
if(cBox!=null)
{
//cb.checked = true;
}
}
if 条件始终失败,就像复选框不存在一样。这里应该做什么。
你只为你的字符串 PhoneID 分配一个数字:
string[] PhoneIds = ["11,23,43"];
相反,您需要使用:
string[] PhoneIds = {"11","23","43"};
然后你会找到它们。
因为否则你会给你的数组分配一个字符串,而这个字符串将是11,23,43
的,只要你没有该字符串的复选框,if-condition就会失败。
此外,您不应该使用数字作为ID,因为您可以在此答案中查看,其中指出直到HTML5
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").
你必须从一封信开始。也许您的浏览器不支持HTML5?
HTML
中的元素 ID 不能以数字开头。这可能就是 ASP.NET 也找不到它的原因。我会在上面加上前缀,例如cbox11
.
要修复 HTML,请执行以下操作:
StringBuilder sbHtml = new StringBuilder("");
sbHtml.Append("<div class='"checkboxBtn'">");
sbHtml.Append("<input type='"checkbox'" runat='"server'"
class='"chkBx'" id='"cbox" +
Convert.ToString(someid) + "'" />");
sbHtml.Append("<label>Compare</label>");
sbHtml.Append("</div>");
对于循环
string[] PhoneIds = {"11", "23", "43"};
foreach(string id in PhoneIds)
{
HtmlInputCheckBox cBox = form1.FindControl("cbox" + id) as HtmlInputCheckBox;
if(cBox!=null)
{
//cb.checked = true;
}
}
你不需要在后面的代码中检查这些,可以在jQuery中完成:
<div class="checkboxBtn">
<span class="uncheked"></span>
<input type="checkbox" runat="server" class="chkBx" id="23"></input>
<label>Compare</label>
</div>
<script type="text/javascript">
$(function(){
$('div.checkboxBtn input[type="checkbox"]').prop('checked', true);
});
</script>
这将选中div.checkboxBtn
的所有子复选框。