2011-05-07 14 views
1

オプションを動的に追加した後、選択リストでいくつかのオプションを無効にする必要があります。リストを選択するには、ヘルプのバインディング追加オプションが必要です

他のリストから項目を選択すると、選択リストが動的に構築されます。
リストはPHPで作成された後、$.ajaxコールを使用してJavaScriptに戻りました。 オプションがリストに追加されたら、オプションをループして特定のオプションを無効にする必要があります。

オプションを追加できますが、特定のオプションを無効にすることはできません。これは、オプションがDOM(またはそのようなもの)にバインドされていないためだと思います。

これは、私が今使っコード:

// HTML 
<select id='selectlist_store' name='selectlist_store' size='6' multiple='multiple'></select> 


// Javascript 
// Populate store multi-select list 
jQuery('#selectlist_city').live('change', function(){ 
    populateStoreListBox(jQuery(this).val(), function(list) { 
    // Add options to list 
    jQuery('#selectlist_store').html(list); 
    // Disable specific element 
    jQuery('#selectlist_city option [value=56]').attr('disabled','disabled'); 
    }); 
}); 


function populateStoreListBox(country_id, callback){ 
    jQuery.ajax({ 
    url: (...), 
    data: (...), 
    dataType: 'html', 
    success: (function(city_list) { 
     callback(city_list); 
    }) 
}); 

私は、私はそれらを追加した後にいくつかのオプションを無効にするために何をする必要がありますか?

HTMLの代わりにJSONの代わりに配列を返し、配列をループして、新しいオプションリストを動的に構築し、無効にするオプションを無効にすることもできます。

しかし、別の方法がありますか?

答えて

1

あなたは[

jQuery('#selectlist_city option[value=56]').attr('disabled','disabled'); 

http://jsfiddle.net/pYBqm/

+0

ほら前にスペースを削除する必要があります!それと同じくらい簡単です。ありがとう! – Steven

関連する問題