2012-03-03 62 views
1

如何爲jQuery組合框設置TabIndex? 如果我爲下拉列表框設置tabindex,它不會爲jquery組合框設置。怎麼做?如何爲jQuery組合框設置TabIndex?

這是我的下拉:

<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。怎麼做?

回答

0

當你的頁面呈現,您DropDownList<select>)不會被「DrpCountryName」的ID,也將被截斷,包括在它存在的命名容器,所以是這樣的:「ctl00_Panel_DrpCountryName」。

你應該你的JavaScript更改爲:

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

或者

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

第一個將呈現DropDownList的實際客戶端ID到jQuery選擇。第二個將找到名稱包含或以「DrpCountryName」結尾的<select>列表。要麼應該沒問題,儘管頭髮更快。

如果您在頁面呈現後「查看源代碼」,您可以看到ID和名稱屬性是什麼。

+0

是的,我知道它。我的問題是關於'tabindex'。 'jquery combobox'隱藏下拉菜單並創建一個'input'和'button',並用下拉列表的值填充它。所以我應該將tabindex設置爲'input'而不是下拉菜單。怎麼做? – 2012-03-03 18:56:33

1

如果您使用的是ASP.NET並且想要使用該ID,那麼您必須使用ClientIDMode屬性(asp.net獨有)來獲取正確的ID。

不過,我只是增加了一個類屬性的控制,以便輕鬆地引用它,然後寫了這樣的jQuery的:

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

的的.ui-組合框輸入是類,你會因爲這是文本輸入,所以想設置tabindex。如果頁面上存在多個jquery組合框,則需要該css類前綴。

相關問題