jQuery选择具有禁用选项的框

时间:2011-07-01 20:05:51

标签: jquery jquery-plugins select

我正在为我的HTML表单寻找一个jQuery / JavaScript选择框。我的具体要求是我需要能够禁用控件菜单中的某些选项。我想知道是否有人找到了允许我这样做的插件,最好是通过使用

之类的东西轻松实现
$("#selectControl").change(function()
{
    $(this).find(":selected").attr("disabled", "disabled");
});

当然,attr()函数不适用于生成的元素,但是有一个jQuery插件有这个功能的包装器吗?

修改

为了让自己更清楚,我会用不同的方式说:我有一个HTML结构,看起来像一个很好的样式选择框,背后有隐藏的实际<select>控件。可以在<option>中禁用<select>,但在大多数jQuery插件中禁用样式选择框。我问是否有一个插件,允许我禁用美化<select>元素中的某些选项。

谢谢,

詹姆斯

2 个答案:

答案 0 :(得分: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();

答案 1 :(得分:0)

嗯,事实证明我看起来不够努力。对于那些想要和我一样的人,我找到了this plugin。为了获得我的“禁用选择”行为,我使用了jQuery tie插件,该插件链接到某个URL的页面上。这是一个沉重的选择框插件,但缩小它应该没问题。使用CSS可以非常轻松地设置该框,并且可以使用边框宽度技巧完全没有图像。如果我对此感兴趣,我会写一篇关于如何设置这些方块样式的教程。

修改

上面链接的插件实际上并不是很好用,所以我只写了自己的插件。如果有人想看一下,我会在一段时间内发布链接。