allowHTML option
parent
08397d94da
commit
e3e4240f1c
16
hinter.js
16
hinter.js
|
@ -3,7 +3,7 @@
|
|||
(c) Vitaliy Filippov 2011
|
||||
Usage:
|
||||
Include hinter.css, hinter.js on your page. Then write:
|
||||
var hint = new SimpleAutocomplete(input, dataLoader, multipleDelimiter, onChangeListener, maxHeight, emptyText);
|
||||
var hint = new SimpleAutocomplete(input, dataLoader, multipleDelimiter, onChangeListener, maxHeight, emptyText, allowHTML);
|
||||
Parameters:
|
||||
input
|
||||
The input, either id or DOM element reference (the input must have an id anyway).
|
||||
|
@ -29,9 +29,11 @@
|
|||
emptyText
|
||||
Text to show when dataLoader returns no options.
|
||||
If emptyText === false, the hint will be hidden instead of showing text.
|
||||
allowHTML
|
||||
If true, HTML code will be allowed in option names.
|
||||
*/
|
||||
|
||||
var SimpleAutocomplete = function(input, dataLoader, multipleDelimiter, onChangeListener, maxHeight, emptyText)
|
||||
var SimpleAutocomplete = function(input, dataLoader, multipleDelimiter, onChangeListener, maxHeight, emptyText, allowHTML)
|
||||
{
|
||||
if (typeof(input) == 'string')
|
||||
input = document.getElementById(input);
|
||||
|
@ -46,6 +48,7 @@ var SimpleAutocomplete = function(input, dataLoader, multipleDelimiter, onChange
|
|||
self.onChangeListener = onChangeListener;
|
||||
self.maxHeight = maxHeight;
|
||||
self.emptyText = emptyText;
|
||||
self.allowHTML = allowHTML;
|
||||
|
||||
// Variables
|
||||
self.items = [];
|
||||
|
@ -143,6 +146,8 @@ var SimpleAutocomplete = function(input, dataLoader, multipleDelimiter, onChange
|
|||
d.id = self.id+'_item_'+self.items.length;
|
||||
d.className = 'hintItem';
|
||||
d.title = value;
|
||||
if (self.allowHTML)
|
||||
d.innerHTML = name;
|
||||
if (self.multipleDelimiter)
|
||||
{
|
||||
var c = document.createElement('input');
|
||||
|
@ -150,9 +155,13 @@ var SimpleAutocomplete = function(input, dataLoader, multipleDelimiter, onChange
|
|||
c.id = self.id+'_check_'+self.items.length;
|
||||
c.checked = checked && true;
|
||||
c.value = value;
|
||||
if (d.children.length)
|
||||
d.insertBefore(c, d.firstChild);
|
||||
else
|
||||
d.appendChild(c);
|
||||
addListener(c, 'click', self.preventCheck);
|
||||
}
|
||||
if (!self.allowHTML)
|
||||
d.appendChild(document.createTextNode(name));
|
||||
addListener(d, 'mouseover', self.onItemMouseOver);
|
||||
addListener(d, 'mousedown', self.onItemClick);
|
||||
|
@ -354,6 +363,9 @@ var SimpleAutocomplete = function(input, dataLoader, multipleDelimiter, onChange
|
|||
// Show hinter
|
||||
self.show = function()
|
||||
{
|
||||
var p = getOffset(self.input);
|
||||
self.hintLayer.style.top = (p.top+self.input.offsetHeight) + 'px';
|
||||
self.hintLayer.style.left = p.left + 'px';
|
||||
if (!self.disabled)
|
||||
self.hintLayer.style.display = '';
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue