需要帮助绑定添加选项以选择列表

时间:2011-05-07 20:36:00

标签: php jquery multi-select

在动态添加选项后,我需要在选择列表中禁用某些选项。

从另一个列表中选择项目时,我的选择列表是动态构建的 该列表在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);
  })
}); 

在添加选项后,我需要做些什么才能禁用某些选项?

一种解决方案可能是返回JSON数组而不是HTML,然后遍历数组并动态构建我的新选项列表并禁用我想要禁用的选项。

但还有另一种方法吗?

1 个答案:

答案 0 :(得分:1)

您需要在[

]之前删除空格
jQuery('#selectlist_city option[value=56]').attr('disabled','disabled');

http://jsfiddle.net/pYBqm/