A jQuery plugin for bootstrap that pops-up a dropdown in textarea or input textbox.
Several quick start options are available:
- download latest release
- npm:
npm install --save bootstrap-suggest
- bower:
bower install bootstrap-suggest
** Make sure to link bootstrap-suggest.js
and bootstrap-suggest.css
to your project
<div class="form-group">
<label for="comment">start typing with @</label>
<textarea class="form-control" rows="5" id="comment"></textarea>
</div>
var users = [
{username: 'lodev09', fullname: 'Jovanni Lo'},
{username: 'foo', fullname: 'Foo User'},
{username: 'bar', fullname: 'Bar User'},
{username: 'twbs', fullname: 'Twitter Bootstrap'},
{username: 'john', fullname: 'John Doe'},
{username: 'jane', fullname: 'Jane Doe'},
];
$('#comment').suggest('@', {
data: users,
map: function(user) {
return {
value: user.username,
text: '<strong>'+user.username+'</strong> <small>'+user.fullname+'</small>'
}
}
})
Ajax is supported by having the data function return a jqXHR object. The function takes a single parameter containing the mention text string.
$('#comment').suggest('@', {
data: function(q) {
if (q) {
return $.getJSON("users/data.json", { q: q });
}
},
// ...
})
A provide
function is provided for you to call on after securing your data (don't return anything to the data
option function to avoid conflict)
$('#comment').suggest('@', {
data: function(q, provide) {
if (q) {
$.getJSON("users/data.json", { q: q }, function(data) {
// simply call provide and pass on your data!
provide.call(data);
});
// we aren't returning any
}
},
// ...
})
timeout = null;
$('#comment').suggest('@', {
data: function(q, lookup) {
var processData = function() {
$.getJSON("users/lookup.json", { q: q }, function(data) {
lookup.call(data);
});
};
if (timeout) {
clearTimeout(timeout);
timeout = null;
}
timeout = setTimeout(processData, 500);
},
// ...
})
http://lodev09.github.io/bootstrap-suggest/#api
All bugs, feature requests, pull requests, feedback, etc., are welcome!
Released under the Apache License, Version 2.0. See LICENSE file.
Copyright 2014-2017, Jovanni Lo / @lodev09 / www.lodev09.com / [email protected]