Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何基于从ajax获取的json在select上添加禁用的select属性_Javascript_Jquery_Json_Ajax_Selectize.js - Fatal编程技术网

Javascript 如何基于从ajax获取的json在select上添加禁用的select属性

Javascript 如何基于从ajax获取的json在select上添加禁用的select属性,javascript,jquery,json,ajax,selectize.js,Javascript,Jquery,Json,Ajax,Selectize.js,我有一个物化选择框,如 <select id="create-event-session-name" name="session_name" class="validate"> <option value="" disabled selected>Select Session</option> <option value="measurements">Measurements</option> <optio

我有一个物化选择框,如

<select id="create-event-session-name" name="session_name" class="validate">
    <option value="" disabled selected>Select Session</option>
    <option value="measurements">Measurements</option>
    <option value="bath">Bath</option>
    <option value="post_partum">Post Partum</option>
    <option value="nicu">NICU</option>
    <option value="mics">Mics.</option>
</select>

选择具有相同值的选项,如果存在此类选项,则设置其slelected和disabled属性:

 $.ajax({
    type: 'GET',
    url: "/get-user-sessions/" + userId,
    success: function(data) {
      $.each(data, function(index, item) {
        var opt = $('#create-event-session-name option[value="'+item.session_name+'"]');
        if(opt.length) {opt.attr('selected',true).attr('disabled',true);}
      });
    },
    error: function(jqXHR, textStatus, errorThrown) {

    }
  });

您只需检查下拉列表是否包含“已禁用的添加值”属性

$("#create-event-user option[value='"+item.session_name+"']").attr({"disabled":true,"selected":"selected"});
完整代码

$.ajax({
    type: 'GET',
    url: "/get-user-sessions/" + userId,
    success: function(data) {
      $.each(data, function(index, item) {
        console.info(item.session_name);
        var mapped = $("select#create-event-session-name option").map(function() {
          return $(this).val();
        }).get();
        console.info(mapped);
        $("#create-event-user option[value='"+item.session_name+"']").attr({"disabled":true,"selected":"selected"});
      });
    },
    error: function(jqXHR, textStatus, errorThrown) {

    }
  });

只有一个值是相同的吗?不,可以有很多,比如从ajax我可以得到测量,洗澡,产后。。。。我想禁用所有这三个选项请在“console.logmapped”之后的末尾尝试此操作$创建事件用户选项[value='+item.session_name+'].attrdisabled,true;
$.ajax({
    type: 'GET',
    url: "/get-user-sessions/" + userId,
    success: function(data) {
      $.each(data, function(index, item) {
        console.info(item.session_name);
        var mapped = $("select#create-event-session-name option").map(function() {
          return $(this).val();
        }).get();
        console.info(mapped);
        $("#create-event-user option[value='"+item.session_name+"']").attr({"disabled":true,"selected":"selected"});
      });
    },
    error: function(jqXHR, textStatus, errorThrown) {

    }
  });