在选择JS中设置当前的倍数值

Moc*_*nto 5 javascript ajax json selectize.js

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

$(".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);
        })
      });
Run Code Online (Sandbox Code Playgroud)

这是我的HTML代码

<select id="select-country" placeholder="Pick a countries..."></select>
Run Code Online (Sandbox Code Playgroud)

这是用于选择的代码

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

这是我来自Json回应的值格式

[{"id":2,"name":"XSA 2","user_id":"3","control_device":"Mobile","control_country":"US,CA","offer_id":"2","rule_id":"1","status":"2"}]
Run Code Online (Sandbox Code Playgroud)

我陷入了这一步,如果"control_country":"US,CA"在将当前值设置为输入形式时(多值)不起作用,但是"control_country":"US"(单值)正确地工作

Ale*_*lex 7

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

$selectz[0].selectize.setValue([optionid,optionid]);
Run Code Online (Sandbox Code Playgroud)

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

$selectz[0].selectize.setValue(["US","CA"]);
Run Code Online (Sandbox Code Playgroud)


小智 1

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