1

msDropdown プラグインを作成した後にオプションを無効にすることはできますか?

私は自分の問題をよりよく説明します。アイコン、テキスト、その他のものを使用して各オプションにhtmlを配置したいので、最初に空の選択を作成してから、追加機能で各オプションを追加します。

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

問題は、特定の状況が発生した場合に 1 つのオプションを無効にする必要があることですが、プラグイン設定を使用してオプションを無効に設定する方法がありません。

msDropdown関数を呼び出す前に関連パラメータdisabled=disabled選択に設定することによってのみオプションを無効にする可能性がありますが、動的にhtmlをオプションテキストに配置する必要があるため、このソリューションを使用できません。

それを行う別の方法はありますか?

ご協力ありがとうございました。

4

2 に答える 2

1

解決策を見つけました。

select empty を作成し、前と同じように各オプションにadd関数を入力しますが、その条件が発生した場合は、次のようにします。

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関数を呼び出して単純な選択を行い、次に disabled 属性を適切に設定して、新しい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/

編集 この 2 番目の例では、データは次を使用して 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 に答える