1

创建 msDropdown 插件后是否可以禁用选项?

我更好地解释了我的问题。我想将带有图标、文本和其他内容的 html 放入每个选项中,所以首先我创建一个空选择,然后使用add函数添加每个选项:

dropdown.add({text:$price.html(), value:'normal', className:'normal'});

问题是,如果发生某种情况,我必须禁用一个选项,但无法通过使用插件设置来设置禁用选项。

只有在调用msDropdowndisabled=disabled函数之前将相关参数设置为select才能禁用选项,但我不能使用此解决方案,因为我必须将动态html放入选项文本中。

还有另一种方法吗?

感谢您的帮助。

4

2 回答 2

1

我找到了解决方案。

我将选择创建为空,并像以前一样使用添加功能填充每个选项,但是当这种情况发生时,只需执行以下操作:

var dropdown = $('select[name="priceType"]').msDropdown().data("dd");

if(credits_error) { // option must be disabled
    dropdown.destroy(); // Make it a simple select
    $('select[name="priceType"] option').attr('disabled', 'disabled');
    dropdown = $('select[name="priceType"]').msDropdown().data("dd");
}

这种方式首先我通过调用destroy函数使它成为一个简单的选择,然后我正确设置禁用属性并创建一个新的msDropdown select

它对我有用,我在 IE、FF 和 Chrome 上测试过

于 2013-02-16T02:24:07.290 回答
0

是的,这是可能的。它可以通过使用disabled选项标签的属性来完成:

<select id="payments" name="payments" style="width:250px;">
    <option value="" data-description="Choos your payment gateway">Payment Gateway</option>
    <option value="amex" data-image="http://www.marghoobsuleman.com/mywork/jcomponents/image-dropdown/samples/images/msdropdown/icons/Amex-56.png" data-description="My life. My card...">Amex</option>
    <option value="Discover" data-image="http://www.marghoobsuleman.com/mywork/jcomponents/image-dropdown/samples/images/msdropdown/icons/Discover-56.png" data-description="It pays to Discover...">Discover</option>
    <option value="Mastercard" data-image="http://www.marghoobsuleman.com/mywork/jcomponents/image-dropdown/samples/images/msdropdown/icons/Mastercard-56.png" data-title="For everything else..." data-description="For everything else...">Mastercard</option>
    <option value="cash" data-image="http://www.marghoobsuleman.com/mywork/jcomponents/image-dropdown/samples/images/msdropdown/icons/Cash-56.png" data-description="Sorry not available..." disabled="true">Cash on devlivery</option>
    <option value="Visa" data-image="http://www.marghoobsuleman.com/mywork/jcomponents/image-dropdown/samples/images/msdropdown/icons/Visa-56.png" data-description="All you need...">Visa</option>
    <option value="Paypal" data-image="http://www.marghoobsuleman.com/mywork/jcomponents/image-dropdown/samples/images/msdropdown/icons/Paypal-56.png" data-description="Pay and get paid...">Paypal</option>
</select>

“现金”选项将被禁用。

这是一个工作小提琴:http: //jsfiddle.net/NKQRj/1/

编辑在第二个示例中,数据是从 JSON 数据加载的,使用:

$("#payments").msDropDown({byJson:{data:jsonData, name:'payments2'}}).data("dd");

填充元素。

您可以使用disabled: true属性在 JSON 数据中将选项定义为禁用:

{image:'http://www.marghoobsuleman.com/mywork/jcomponents/image-dropdown/samples/images/msdropdown/icons/Cash-56.png', description:'Sorry not available...', value:'cash', text:'Cash on devlivery', disabled:true},

这是一个工作小提琴:http: //jsfiddle.net/NKQRj/3/

于 2013-02-15T17:15:56.010 回答