Allow disabling items in single-select

master
Vitaliy Filippov 2013-11-13 11:43:35 +00:00
parent f328abfe03
commit 8612a25603
1 changed files with 5 additions and 6 deletions

View File

@ -2,7 +2,7 @@
Homepage: http://yourcmc.ru/wiki/SimpleAutocomplete Homepage: http://yourcmc.ru/wiki/SimpleAutocomplete
License: MPL 2.0+ (http://www.mozilla.org/MPL/2.0/) License: MPL 2.0+ (http://www.mozilla.org/MPL/2.0/)
Version: 2013-10-18 Version: 2013-11-13
(c) Vitaliy Filippov 2011-2013 (c) Vitaliy Filippov 2011-2013
Usage: Usage:
@ -18,7 +18,7 @@
newOptions = [ [ name, value, disabled, checked ] ], [ name, value ], ... ] newOptions = [ [ name, value, disabled, checked ] ], [ name, value ], ... ]
name = HTML option name name = HTML option name
value = plaintext option value value = plaintext option value
disabled = only meaningful when multipleListener is set disabled = prevent selection of this option
checked = only meaningful when multipleListener is set checked = only meaningful when multipleListener is set
append = 'more' parameter should be passed here append = 'more' parameter should be passed here
Callback parameters: Callback parameters:
@ -168,9 +168,6 @@ SimpleAutocomplete.prototype.replaceItems = function(items, append)
this.hintLayer.innerHTML = this.prompt ? '<div class="hintPrompt">'+this.prompt+'</div>' : ''; this.hintLayer.innerHTML = this.prompt ? '<div class="hintPrompt">'+this.prompt+'</div>' : '';
this.enable(); this.enable();
} }
if (!this.multipleListener)
for (var i in items)
items[i][2] = 0;
if (this.multipleDelimiter) if (this.multipleDelimiter)
{ {
var h = {}; var h = {};
@ -187,7 +184,7 @@ SimpleAutocomplete.prototype.replaceItems = function(items, append)
} }
}; };
// Add removable listener (remember the function) // Add removable listener on this.input (remember the function)
SimpleAutocomplete.prototype.addRmListener = function(n, f) SimpleAutocomplete.prototype.addRmListener = function(n, f)
{ {
this.closure[n] = f; this.closure[n] = f;
@ -254,6 +251,8 @@ SimpleAutocomplete.prototype.moveHighlight = function(by)
var n = this.selectedIndex+by; var n = this.selectedIndex+by;
if (n < 0) if (n < 0)
n = 0; n = 0;
while (this.items[n] && this.items[n][2])
n += by;
var elem = document.getElementById(this.id+'_item_'+n); var elem = document.getElementById(this.id+'_item_'+n);
if (!elem) if (!elem)
return true; return true;