Getting started with TextAssist
In order to use TextAssist, you must include the JavaScript file on your website.
- Download the code and copy the file(in dist directory) to your project.
- Include like below in your HTML.
<script src="path/to/textassist.js"></script>
<script src="path/to/your.js"></script>
Demo
Simple
var textarea = document.getElementById('some-id');
var textassist = new TextAssist(textarea, {
find: function(term, callback) {
callback(['contents', 'that', 'were', 'filtered', 'by', 'term']);
}
});
Customized
var textarea = document.getElementById('some-id');
var textassist = new TextAssist(textarea, {
find: function(term, callback) {
// You can use ajax to get data from server.
// This example just to make it look like using ajax.
setTimeout(function() {
callback(filterData(term));
}, 300);
},
ulClassName: 'dropdown-menu',
anchorClassName: 'dropdown-item',
activeClassName: 'active',
item: function(source, term) {
// You can make your own HTML to show the value.
var capitalized = term;
if (capitalized) {
capitalized = term.charAt(0).toUpperCase() + term.slice(1);
}
return source.replace(capitalized, '<u>' + capitalized + '</u>');
},
loadingHTML: '<img src="xxx.gif" /><span>Now loading...</span>',
noneHTML: '<img src="yyy.png" /><span>Nothing found.</span>'
});
jQuery
// Also, you can use with jQuery!
$('#demo3').textassist({
find: function(term, callback) {
callback(filterData(term));
},
beforeFix: function(source) {
return '"' + source + '"';
},
afterFix: function(value) {
console.log('Applied value = ' + value);
}
});
Documentation
DOM Structure of suggestion area
<ul>
<li>
<a>value</a>
</li>
</ul>
Constructor
var textassist = new TextAssist( element, // HTMLElement. Must be textarea! options // Options. See next description. );
Options
var options = {
// [Required function]
find: function(term, callback) {
// Implement getting data and passing data to callback.
// 'term' is string for filtering data.
// 'callback' is function to process next. Accepts only array as the argument.
// Example:
return ['some', 'data', 'filtered', 'by', 'term'];
},
// [Class name for <UL>]
ulClassName: null, // If you use Bootstrap, set 'dropdown-menu'.
// [Class name for <LI>]
liClassName: null,
// [Class name for <A>]
anchorClassName: null, // If you use Bootstrap, set something.
// [Class name for <LI> when it is selected]
activeClassName: null, // If you use Bootstrap, set 'active'.
// [Optional function]
item: function(source, term) {
// Implement making content html.
// 'source' is string for suggestion.
// 'term' is same value of `find` function.
// Default implementaion is:
return value;
},
// [HTML that is shown when preparing values]
loadingHTML: '<a href="javasript:void(0)">Loading...</a>',
// [HTML that is shown when there are no values]
noneHTML: '<a href="javasript:void(0)">No items...</a>',
// [Delay time for firing suggestion event]
delayMills: 200,
// [Event before fixing the selection]
beforeFix: function(source) {
// 'source' is the value to be applied to textarea.
// You can change 'source' to another value.
// Default implementation is:
return source;
},
// [Event after fixing the selection]
afterFix: function(value) {
// 'value' is the value applied to textarea.
// Default is NOOP.
}
};
Methods
Coming soon...
Authors and Contributors
In 2015, J Iz (@iz-j) founded GitHub.
Support or Contact
Having trouble? Visit https://github.com/iz-j/textassist.