easyui的input选择框在输入值时使用onchange事件搜索选择框内容并赋值后,使用键盘的上下键选值时,默认选中了一个值并直接赋值了,下拉框也自动收回了如何修改,在使用上下键时不收回下拉框,也不自动赋值
时间: 2024-11-12 08:39:02 浏览: 5
easyui-textbox和easyui-combobox的onchange事件响应实例
在EasyUI的Input选择框中,如果你希望在用户通过键盘上下键选择值时不会自动赋值并隐藏下拉框,你需要自定义`onchange`事件处理函数,并阻止默认的行为。首先,确保你在初始化`input`元素时设置了`onchange`事件:
```javascript
$("#yourInputId").combobox({
onchange: function(value, item) {
// 自定义事件处理逻辑
if (value !== item.value) { // 如果不是通过键盘选择的值
// 阻止默认的赋值行为
event.preventDefault();
// 取消关闭下拉框
return false;
}
},
// 其他配置...
});
```
在这个自定义事件中,你可以检查`event`对象的`type`属性,如果它是由键盘操作触发的(例如,`keydown`, `keyup`, 或者 `keypress`),则不需要自动赋值或隐藏下拉框。
然后,你需要监听键盘事件来控制下拉框的状态,例如,当用户按下上或下箭头时:
```javascript
$(document).bind('keydown', function(e) {
var keyCode = e.keyCode;
if (keyCode === $.ui.keyCode.UP || keyCode === $.ui.keyCode.DOWN) {
$("#yourInputId").combobox("show"); // 显示下拉框
}
});
```
这样,用户使用键盘导航时,下拉框就不会自动关闭,直到用户做出明确的选择。
阅读全文