在下拉列表中将键盘导航添加到CheckBoxList

时间:2012-08-14 15:11:47

标签: jquery asp.net user-controls checkboxlist keyboard-navigation

我有一个“DropDownCheckBoxList”用户控件,我是从头开始使用文本框,图像(箭头)和下拉DIV中隐藏的ASP.Net CheckBoxList控件创建的。

结合大量的JQuery,它的效果很好,除了最后一个功能...下拉列表项的键盘上/下导航

看起来像这样:

enter image description here

生成的HTML示例如下所示:

<div style="width: 170px;" class="dropDownComboxBoxList">
    <div onclick="DropDown('#MainContent_DropDownCheckBoxList1_dropDownDiv', '#MainContent_DropDownCheckBoxList1_dropDownTextBox')" class="dropDownControl" id="MainContent_DropDownCheckBoxList1_dropDownControl">
        <div style="width: 150px;" class="dropDownLeft">
            <input type="text" class="dropDownEdit" id="MainContent_DropDownCheckBoxList1_dropDownTextBox" readonly="readonly" value="Item 0, Item 1" name="ctl00$MainContent$DropDownCheckBoxList1$dropDownTextBox">
        </div>
        <div class="dropDownRight">
            <img src="http://localhost:28071/Images/DropDown_off.gif" class="dropDownImg img-swap" id="MainContent_DropDownCheckBoxList1_dropDownImage">
        </div>
    </div>
    <div style="width: 300px; max-height: 300px; margin-top: 0px; display: none;" class="dropDownDiv" id="MainContent_DropDownCheckBoxList1_dropDownDiv">
        <table style="height: 40px; width: 290px;" class="checkBoxList dropDownTable" id="MainContent_DropDownCheckBoxList1_checkBoxList">
            <tbody>
                <tr class="checkSel">
                    <td><input type="checkbox" value="0" checked="checked" id="MainContent_DropDownCheckBoxList1_checkBoxList_0" class="dropDownCheck"><label for="MainContent_DropDownCheckBoxList1_checkBoxList_0" class="dropDownLabel">Item 0</label></td>
                </tr>
                <tr class="checkSel">
                    <td><input type="checkbox" value="1" checked="checked" id="MainContent_DropDownCheckBoxList1_checkBoxList_1" class="dropDownCheck"><label for="MainContent_DropDownCheckBoxList1_checkBoxList_1" class="dropDownLabel">Item 1</label></td>
                </tr>
                <tr>
                    <td><input type="checkbox" value="2" id="MainContent_DropDownCheckBoxList1_checkBoxList_2" class="dropDownCheck"><label for="MainContent_DropDownCheckBoxList1_checkBoxList_2" class="dropDownLabel">Item 2</label></td>
                </tr>
                <tr>
                    <td><input type="checkbox" value="3" id="MainContent_DropDownCheckBoxList1_checkBoxList_3" class="dropDownCheck"><label for="MainContent_DropDownCheckBoxList1_checkBoxList_3" class="dropDownLabel">Item 3</label></td>
                </tr>
            </tbody>
        </table>
    </div>
</div>

我已经尝试连接到jQuery.keynav然后连接到jQuery.navigate但是虽然它们都捕获按键,但它们对选择没有任何影响,并且按键/向下键仍然只是滚动下拉列表(当然,当有更多项目时,与此示例不同)。

对于显示的HTML,jQuery.navigate的当前连接将是这样的:

$('#MainContent_DropDownCheckBoxList1_checkBoxList').filter('td').navigate({ mouse: true, activeClass: 'checkHover' });

我需要做些什么才能让它导航?在下拉列表中使用CheckBoxList只是一个问题吗?我是否误用导航插件?

0 个答案:

没有答案