当检查复选框时禁用选择性下拉列表

问题描述:

我在我的html表单上实现了selectize。但是,只有在单击“启用”复选框后,下拉菜单才会变为活动状态。我知道在selectize对象上有一个禁用属性,但我不知道如何在复选框被点击时使用它。当检查复选框时禁用选择性下拉列表

我曾尝试添加禁用的类到selectize div元素,但那也不起作用。 任何帮助将不胜感激。

谢谢

这是有点奇怪,你必须设置它。这是对我有用的东西。

var select = $("#YourDropDownId").selectize(); 
var selectize = select[0].selectize; 
selectize.disable(); 

我想在这里增加一个额外的答案,因为虽然@ tclark333的答案是正确的,这是一个有点误导,因为第一行是selectize对象的实际初始化,而不是实际上是需要什么样的答案。

当您从jQuery对象访问底层元素的selectize属性时,选择性API会暴露,而不是作为jQuery自身的扩展。

假设已经selectized的ID的元素是 “myDropDown”:

//disable 
$('#myDropDown')[0].selectize.disable(); 
//re-enable 
$('#myDropDown')[0].selectize.enable(); 

function generateCircle(id , jPath){ 
     var formId =$("#"+id).closest(".data_details_accord").find("form"); 
     var select = formId.find("select"); 
     /*disable select initially*/ 
     select.each(function(){ 
      var thisSelect = $(this).selectize(); 
      thisSelectDisable = thisSelect[0].selectize; 
      thisSelectDisable.disable(); 
     }); 

     /***********/ 

     $.ajax({ 
      url: jPath, 
      data:formVlaz, 
      success: function(result){ 

      },error: function (xhr , status, eror) { 
      },complete: function (xhr) { 

       /*enable select when ajax complete*/ 
        select.each(function(){ 
         var thisSelect = $(this).selectize(); 
         thisSelectDisable = thisSelect[0].selectize; 
         thisSelectDisable.enable(); 
        }); 

       /********/ 
      } 
     }); 
    };