autocomplete, continued

This commit is contained in:
Rolux 2010-02-18 20:41:14 +05:30
parent db0af09c90
commit fa04216352
2 changed files with 15 additions and 24 deletions

View file

@ -1564,7 +1564,6 @@ requires
},
size: self.options.size
});
self.value = "",
that.bindEvent("click_" + self.menuId, onClick);
that.bindEvent("deselect_" + self.menuId, onDeselect);
that.bindEvent("select_" + self.menuId, onSelect);
@ -1575,18 +1574,22 @@ requires
});
}
function autocomplete(items) {
var selected = -1;
if (items.length) {
items = $.map(items, function(title) {
items = $.map(items, function(title, position) {
if (that.val().toLowerCase() == title.toLowerCase()) {
selected = position;
}
return {
id: title.toLowerCase(), // fixme: need function to do lowercase, underscores etc?
title: title
};
});
self.menu.options({
items: items
items: items,
selected: selected
}).showMenu();
} else {
Ox.print("hiding")
self.menu.hideMenu();
}
}
@ -1615,21 +1618,12 @@ requires
}
function keypress(event) {
setTimeout(function() {
var val = that.val();
if (self.options.autocomplete && val != self.options.value) {
self.options.value = val;
if (val === "") {
self.menu.hideMenu();
} else {
self.options.autocomplete(val, autocomplete);
}
var value = that.val();
if (self.options.autocomplete && value != self.value) {
self.value = value;
self.options.autocomplete(self.value, autocomplete);
}
}, 50);
/*
if (event.keyCode == 38 || event.keyCode == 40) {
return false;
}
*/
}
function onClick(event, data) {
Ox.print("onClick", data)
@ -1637,14 +1631,11 @@ requires
self.menu.hideMenu();
}
function onDeselect(event, data) {
that.val(self.value);
//that.val(self.value);
}
function onSelect(event, data) {
self.value = that.val().substr(0, selection()[0]);
var position = self.value.length;
that.val(data.title);
selection(position);
self.element.setSelectionRange(position, data.title.length);
//self.value = that.val();
//that.val(data.title);
}
function selection() {
var start, end;

View file

@ -341,7 +341,7 @@
"New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota",
"Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island",
"South Carolina", "South Dakota", "Tennessee", "Texas", "Utah",
"Vermont", "Virginia", "Washington", "West Virgina", "Wisconsin",
"Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin",
"Wyoming"
];
if (value === "") {