2011-07-01 214 views
0

我正在爲我的HTML表單尋找一個jQuery/JavaScript選擇框。在我的情況下,具體要求是我需要能夠禁用控件菜單中的某些選項。我想知道是否有人已經發現了一個插件,允許我使用類似帶禁用選項的jQuery選擇框

$("#selectControl").change(function() 
{ 
    $(this).find(":selected").attr("disabled", "disabled"); 
}); 

當然做到這一點,最好是容易的attr()功能將不生成元素上工作,但有一個包含這個功能的jQuery插件?

編輯

爲了讓自己更清楚,我會說這是不同的:我有一個HTML的結構,看起來像一個很好的風格選擇框,它背後隱藏的實際<select>控制。可以在<select>中禁用<option>,但在大多數jQuery插件中禁用樣式選擇框。我問是否有一個插件,允許我禁用在美化<select>元素中的某些選項。

感謝,

詹姆斯

+0

禁用和選擇實際上屬性不是屬性,在jQuery 1.6中更新。查看prop()文檔:http://api.jquery.com/prop/ – AlienWebguy

+0

@AlienWebguy:謝謝你,但你錯過了我的問題。我編輯過讓自己更清楚 - 對不起。 – Bojangles

+0

對不起。我不知道任何副作用,但jQuery是非常靈活的,你應該能夠擴展你當前使用的任何插件來支持禁用選項。你可以做一個jsbin或jsfiddle頁面或提供一個鏈接到你的例子,所以我可以看到插件代碼? – AlienWebguy

回答

0

那麼,事實證明,我看起來不夠努力。對於那些想和我一樣的人,我發現了this plugin。爲了讓我的「禁用select」行爲,我使用了鏈接到某個URL上的頁面上的jQuery tie插件。這是一個很大的選擇框插件,但縮小它應該沒問題。這個盒子很容易用CSS來設計,並且可以使用邊框寬度技巧完全沒有圖像。如果我有足夠的興趣,我會寫一篇關於如何設計這些盒子的教程。

編輯

上面鏈接實際上並沒有很好地工作的插件,所以我只是寫我自己。如果有人想看看,我會發佈一個鏈接。

1

我不知道我對你的問題的跟蹤,但下面的代碼片段運行在一個下拉菜單,隱藏某些選項:

//show them all 
$('#<%= ddlRank.ClientID %> span').each(
    function() { 
     var opt = $(this).find("option").show(); 
     $(this).replaceWith(opt); 
    } 
); 

//hide unrelated 
var selectionLost = false; 
$('#<%= ddlRank.ClientID %> option').each(
    function() { 
     if ($.inArray($(this).val(), related) == -1) { 
      if ($(this).attr("selected")) { 
       $(this).removeAttr("selected"); 
       selectionLost = true; 
      } 
      $(this).wrap("<span>").hide(); 
     } 
    } 
); 

祕密醬(將它們與「顯示全部」代碼結合在一起)是:

$(this).wrap("<span>").hide();