1

我有一个 CheckListBox 并在项目上指定工具提示。渲染时,它会在复选框(和标签)周围显示一个跨度,并且它是具有标题属性的跨度,而不是复选框(输入类型=复选框)。

有谁知道如何在输入元素上设置标题属性而不是周围的跨度?

为了符合 508,我需要在 input 元素上拥有 title 属性,而不是在 span 上。

编辑:请注意,我更愿意在服务器端在 C# 中进行所有必要的更改。我宁愿不必在 javascript/jquery 中执行此操作。

4

2 回答 2

1

到过那里。JavaScript 无论如何都不会帮助您处理 508,因为它不会更改源代码。

这应该为您解决它:

protected override void OnPreRender(EventArgs e)
{
    base.OnPreRender(e);
    foreach(ListItem li in CheckBoxList1.Items){
            li.Attributes["title"] = "my title";
        }
}
于 2012-07-19T22:37:27.257 回答
1

我应该在发布之前进行测试。最快的方法是使用带有 runat="server" 属性的老式 html 控件。然后,您可以通过其 ID 引用您的各个复选框。例如:

<asp:Panel ID="BrowserCheckBoxList" runat="server">
    <ul>
        <li><input id="CheckBoxList1_0" type="checkbox" name="" value="Chrome" title="Chrome" runat="server" /> <label for="CheckBoxList1_0">Chrome</label></li>
        <li><input id="CheckBoxList1_1" type="checkbox" name="" value="FireFox" title="FireFox" runat="server" /> <label for="CheckBoxList1_1">FireFox</label></li>
        <li><input id="CheckBoxList1_2" type="checkbox" name="" value="IE" title="IE" runat="server" /> <label for="CheckBoxList1_2">IE</label></li>
        <li><input id="CheckBoxList1_3" type="checkbox" name="" value="Opera" title="Opera" runat="server" /><label for="CheckBoxList1_3">Opera</label></li>
        <li><input id="CheckBoxList1_4" type="checkbox" name="" value="Safari" title="Safari" runat="server" /><label for="CheckBoxList1_4">Safari</label></li>
    </ul>
</asp:Panel>
于 2012-07-20T20:49:50.177 回答