Sselect. Input text field tips. jQuery plugin.

Install

NPM:

$ npm i @balambasik/sselect

CDN:

https://cdn.jsdelivr.net/gh/balambasik/sselect/sselect.js
https://cdn.jsdelivr.net/gh/balambasik/sselect/sselect.css

TAGS:

<script src="https://cdn.jsdelivr.net/gh/balambasik/sselect/sselect.js"></script>
<link href="https://cdn.jsdelivr.net/gh/balambasik/sselect/sselect.css" rel="stylesheet">

Use

<input type="text" id="input-tips">
$('#input-tips').sselect({
    data: [],
    placeholder: 'Placeholder',
    text_noresults: 'Not results',
    prepLi: function() {},
    prepSelectedLi: function() {},
    prepQuery: function() {},
    onInput: function() {},
    onSelect: function() {},
    onNoresults: function() {},
    onShow: function() {},
    onClose: function() {}
});

data

var data = ['foo', 'bar', 'baz']; // tips array

$('#input-tips').sselect({
    data: data, // tips data
});

prep

// 
var data = [
    ['foo', 'bar'],
    ['foo1', 'bar1'],
    ['foo2', 'bar2'],
];

$('#input-tips').sselect({

    // prep  item var data
    prepLi: function(item) {
        if ($.isArray(item)) {
            return '<li class="sselect-li">' + item.join(',') + '</li>';
        }
        return '<li class="sselect-li">' + item + '</li>';
    },
        
    //  selected li elem
    prepSelectedLi: function($li){
        return $li.text();
    },
    
    // prep query string
    prepQuery: function(query){
        return query.trim();
    },
});

events

$('#input-tips').sselect({
    onInput: function(query) {
        console.log(query);
    },
    onSelect: function(selected_text) {
         console.log(selected_text);
    },
    onNoresults: function() {
        // No results
    },
    onShow: function() {
        // Show tips drop menu
    },
    onClose: function() {
        // Close tips drop menu
    }
});