如何为jquery组合框设置TabIndex?

时间:2012-03-03 18:46:01

标签: jquery asp.net jquery-ui

如何为jquery组合框设置TabIndex? 如果我为下拉列表框设置tabindex,则不会为jquery comobox设置。怎么做?

这是我的下拉列表:

  <asp:DropDownList ID="DrpCountryName" runat="server" Width="138px">
                        </asp:DropDownList>

jquery代码:

  $(function() {
        $("#DrpCountryName").combobox();
        $("#toggle").click(function() {
            $("#DrpCountryName").toggle();
        });

修改 如您所知,jquery组合框会隐藏dropdown并创建inputbutton,并使用dropdown的值填充它。所以我应该为tabindex设置输入而不是dropdown。怎么做?

2 个答案:

答案 0 :(得分:1)

如果您正在使用ASP.NET并且想要使用该ID,则必须使用ClientIDMode属性(对于asp.net是唯一的)来获取正确的ID。

但是,我只是在控件中添加了一个类属性,以便轻松引用它,然后像这样编写jquery:

$(document).ready(function ()
{
    $('.DrpCountryName .ui-combobox-input').attr("tabindex", 6);
});

.ui-combobox-input是您要设置tabindex的类,因为这是文本输入。如果页面上有多个jquery组合框,则需要该css类前缀。

答案 1 :(得分:0)

当您的网页呈现时,您的DropDownList<select>)的ID不会是“DrpCountryName”,它会被修改为包含它所在的命名容器,所以类似于:“ ctl00_Panel_DrpCountryName”。

您应该将JavaScript更改为:

$("#<%= DrpCountryName.ClientID %>").combobox();

或者

$("select[name*='DrpCountryName']").combobox(); // contains "DrpCountryName"
$("select[name$='DrpCountryname']").combobox(); // ends with "DrpCountryName"

第一个将DropDownList的实际客户端ID呈现到jQuery选择器中。第二个将找到<select>列表,其名称包含或以“DrpCountryName”结尾。两者都应该没问题,不过第一个是头发更快。

如果在呈现页面后“查看源代码”,您可以看到ID和名称属性是什么。