Select2 autocomplete by option value

后端 未结 2 1514
既然无缘
既然无缘 2021-02-14 06:43

I have tried to integrate tag/autocomplete for my site. Its working through option text. I am almost close to result but still hanging.

Now when you try to select option

2条回答
  •  感情败类
    2021-02-14 07:23

    To remove the double-ups of the Id and the Text showing when entering just the Id check whether the entered term matches an existing Id, and if it does simply return the Text of the matching option:

    options = [];
    
    // create an array of select options for a lookup
    $('.custom-select option').each(function(idx) {
        options.push({id: $(this).val(), text: $(this).text()});
    });
    
    
    $("select").select2({
      tags: "true",
      placeholder: "Select an option",
      allowClear: true,
      width: '100%',
      createTag: function (params) {
        var term = $.trim(params.term);
    
        if (term === '') {
          return null;
        }
        
        // check whether the term matches an id
        var search = $.grep(options, function( n, i ) {
          return ( n.id === term || n.text === term); // check against id and text
        });
        
        // if a match is found replace the term with the options' text
        if (search.length) 
          term = search[0].text;
        else
          return null; // didn't match id or text value so don't add it to selection
        
        return {
         id: term,
         text: term,
         value: true // add additional parameters
        }
      }
    });
    
    $('select').on('select2:select', function (evt) {
      //console.log(evt);
      //return false;
    });
    .select2-container {
      max-width: 400px;
    }
    
    
    
    

提交回复
热议问题