How to set a value for a selectize.js input?

后端 未结 11 2097
没有蜡笔的小新
没有蜡笔的小新 2020-12-13 23:51

I have a form from which I would like to copy some default values into the inputs. The form inputs are using the selectize.js plugin. I would like to set some of the form

相关标签:
11条回答
  • var $select = $(document.getElementById("selectTagName"));
    var selectize = $select[0].selectize;
    selectize.setValue(selectize.search("My Default Value").items[0]);
    
    0 讨论(0)
  • 2020-12-14 00:13

    just ran into the same problem and solved it with the following line of code:

    selectize.addOption({text: "My Default Value", value: "My Default Value"});
    selectize.setValue("My Default Value"); 
    
    0 讨论(0)
  • 2020-12-14 00:17

    Here is my full code using tag from remote search. Hope this is helpful.

    $('#myInput').selectize({
    valueField: 'id',
    labelField: 'name',
    searchField: 'name',
    options: [],
    delimiter: ',',
    persist: false,
    create: false,
    load: function(query, callback) {
        if (!query.length) return callback();
        $.ajax({
            url: '/api/all_cities.php',
            type: 'GET',
            dataType: 'json',
            data: {
                name: query,
            },
            error: function() {
                callback();
            },
            success: function(res) {
                callback(res);
            }
        });
    },
    onInitialize: function(){
        var selectize = this;
        $.get("/api/selected_cities.php", function( data ) {
            selectize.addOption(data); // This is will add to option
            var selected_items = [];
            $.each(data, function( i, obj) {
                selected_items.push(obj.id);
            });
            selectize.setValue(selected_items); //this will set option values as default
        });
    }
    });
    
    0 讨论(0)
  • 2020-12-14 00:19

    First load select dropdown and then selectize it. It will work with normal $(select).val().

    0 讨论(0)
  • 2020-12-14 00:24

    I had a similar problem. My data is provided by a remote server. I want some value to be entered in the selectize box, but it is not sure in advance whether this value is a valid one on the server.

    So I want the value to be entered in the box, and I want selectize to show the possible options just if like the user had entered the value.

    I ended up using this hack (which it is probably unsupported):

    var $selectize = $("#my_input").selectize(/* settings with load*/);
    var selectize = $select[0].selectize;
    // get the search from the remote server
    selectize.onSearchChange('my value');
    // enter the input in the input field
    $selectize.parent().find('input').val('my value');
    // focus on the input field, to make the options visible
    $selectize.parent().find('input').focus();
    
    0 讨论(0)
  • 2020-12-14 00:28

    Note setValue only works if there are already predefined set of values for the selectize control ( ex. select field ), for controls where the value could be dynamic ( ex. user can add values on the fly, textbox field ) setValue ain't gonna work.

    Use createItem functon instead for adding and setting the current value of the selectize field

    ex.

    $selectize[ 0 ].selectize.clear(); // Clear existing entries
    for ( var i = 0 ; i < data_source.length ; i++ ) // data_source is a dynamic source of data
        $selectize[ 0 ].selectize.createItem( data_source[ i ] , false ); // false means don't trigger dropdown
    
    0 讨论(0)
提交回复
热议问题