在选择JS中设置当前的多个值

时间:2017-02-20 14:40:28

标签: javascript json ajax selectize.js

当设置当前值为多个值时,我在选择JS时遇到问题。我用Json格式的Ajax响应设置,这是我的代码。

$(".rule_list").on("click",function(e) {
        e.preventDefault();
        $.ajax({
          url: 'getruledata,
          dataType: 'json'
        })
        .done(function(data){
          console.log(data);
          $selectz[0].selectize.setValue(data[0].control_country);
        })
      });

这是我的HTML代码

<select id="select-country" placeholder="Pick a countries..."></select>

这里有选择性的代码

var $selectz = $('#select-country').selectize({
        maxItems: null,
        valueField: 'iso',
        labelField: 'nice_name',
        searchField: 'nice_name',
        options: {!! $country !!},
        create: false,
      });

这是我的Json响应值格式

[{"id":2,"name":"XSA 2","user_id":"3","control_device":"Mobile","control_country":"US,CA","offer_id":"2","rule_id":"1","status":"2"}]

如果"control_country":"US,CA"(多个值)在将当前值设置为输入表单时无效,但是"control_country":"US"(单个值)正常工作,我就会陷入此步骤

2 个答案:

答案 0 :(得分:3)

您可以设置多个值来进行选择,如下所示:

$selectz[0].selectize.setValue([optionid,optionid]);

所以在你的例子中它应该是:

$selectz[0].selectize.setValue(["US","CA"]);

答案 1 :(得分:1)

您需要使用方法addItem(value, silent)。如docs中所述,addItem“选择”项目,其中将true传递给“silent”将更改应用于原始输入。