我设置了一个 kendoComboBox,我试图阻止箭头键发送输入。
在我下面的示例中,如果我删除对 keyCode 38 和 40(上下箭头)的检查,它将阻止所有字母数字输入,但箭头键仍会更改 kendoComboBox 的选择。
有什么建议或想法吗?
$(document).ready(function() {
$("#products").kendoComboBox({
placeholder: "Select product",
dataTextField: "ProductName",
dataValueField: "ProductID",
filter: "contains",
autoBind: false,
minLength: 1,
dataSource: {
type: "odata",
serverFiltering: true,
transport: {
read: {
url: "http://demos.kendoui.com/service/Northwind.svc/Products"
}
}
}
});
// Stop up/down arrow input
$('#products').closest('.k-widget').keydown(function(e){
console.log(e.keyCode);
// Up/down arrow
if(e.keyCode == 38 || e.keyCode == 40)
e.preventDefault();
});
});
最佳答案
您尝试的方法不会起作用,因为它不会影响组合框注册的事件处理程序。您可以简单地用一个不使用箭头键导航的处理程序替换该处理程序(尽管作为用户,我不得不问您为什么要这样做):
kendo.ui.ComboBox.fn._keydown = function(e) {
var that = this,
key = e.keyCode;
that._last = key;
clearTimeout(that._typing);
if (key !== kendo.keys.TAB &&
key !== kendo.keys.DOWN &&
key !== kendo.keys.UP) {
that._search();
}
};
(在您第一次创建组合框之前在某处添加此代码)
关于javascript - 试图阻止 kendoComboBox 的箭头键输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20912986/