选择2禁用/启用特定选项

我有list2类型的列表。

  None One Two   

我想禁用值为1的选项,所以我喜欢这样

 $("#list>optgroup>option[value='1']").prop('disabled',true); Result:// One 

它工作正常;但如果我想重新启用禁用选项我尝试下面的代码,但仍然禁用select2选项。

 $("#list>optgroup>option[value='1']").prop('disabled',false); $("#list>optgroup>option[value='1']").removeProp('disabled'); Result:// One 

但奇怪的是删除了该选项的禁用属性。但select2选项仍然被禁用。

没有得到如何解决这个问题。 需要帮忙。

更新:如果我检查select2的DOM,即使在removeinf禁用后它也具有此属性。

 
  • One
  • 如果我使aria-disabled =“false”它将启用。 无法得到原因。

    实现此目的的最简单方法是在更改disabled属性后再次在元素上调用.select2(…)

    http://jsfiddle.net/xoxd2u15/

    由于select2用自定义HTML元素替换原始选择字段(并隐藏原始元素),并且显然不会在调用后不断“观察”原始选择元素的选项以便在其禁用状态下进行更改,因此您必须再次调用它更改状态,以便从原始元素的选项中读取当前属性值。

    禁用试试这个:

     $("#list>optgroup>option[value='1']").attr('disabled','disabled'); 

    要删除禁用尝试此操作:

     $("#list>optgroup>option[value='1']").removeAttr('disabled');