我做了一个jsfiddle,基本上我想要的是用户不仅能够输入进入下拉菜单的代码,还可以输入我指定的附加值。
在这个简单的例子中,我希望,当用户专注于下拉菜单时,他们能够输入a或1来选择a, B或2来选择B, C或3来选择C。在我目前的实现中,只有3可以工作,所以似乎绑定被覆盖了。
这是jsfiddle: http://jsfiddle.net/yD7pb/
var selectArray = {
49 : 'A',
50 : 'B',
51 : 'C'
};
$.fn.smartSelect = function(array){
for( var index in array) {
$(this).bind('keypress',function(event){
if(event.keyCode == index){
$(this).val(array[index]);
}
});
}
};
$(document).ready(function() {
$("#testSelect").smartSelect(selectArray);
});
无需多次绑定回调函数。只需检查它是否匹配其中一个键,如果匹配,则设置值:
var selectArray = {
49 : 'A',
50 : 'B',
51 : 'C'
};
$.fn.smartSelect = function(array){
$(this).bind('keypress',function(event){
if(event.keyCode in selectArray){
$(this).val(array[event.keyCode]);
}
});
};
$(document).ready(function() {
$("#testSelect").smartSelect(selectArray);
});
Jsfiddle: http://jsfiddle.net/yD7pb/5/