使用可编辑数据单元矩阵处理更多/更少像电子表格一样运行的HTML控件。当涉及从SELECT派生的单元格时,我在选择该类型的单元格进行编辑时遇到问题时会遇到问题:
如果我使用默认格式(size = 0)渲染Select,则用户会获得Select的Enter-key处理的不正常行为:
另一方面,如果select被渲染为列表框(例如,size = 3),则Enter键行为正是我正在寻找的(意思是,上面列表中的#2和#3)不再需要),但因为列表现在显示在控件的内部(而不是弹出窗口),它会炸掉单元格/行大小。
那么,有没有办法“挂钩”上面的第三个Enter-key事件,或者在处理Enter键时改变Select的行为的其他一些相对直接的方式?
注意:我们没有使用任何第三方库(阅读:jQuery,et.al)
编辑:这是事件监听器(通过典型的“addEventListener(...)”附加
this.e_sKeyDown = function(control, event) {
switch(event.keyCode) {
case 13: // enter
control.blur()
break
case 27: // esc = reset selection to it previous value
control.setAttribute("data-cancelModify", "true")
control.blur()
break
}
}
第二次编辑:根据评论/建议,我已添加/尝试此尝试:
this.e_sOnChange = function(control, event) {
control.blur()
}
该事件将触发,但它会触发每个不同的Option / s。换句话说,我似乎没有任何方法可以确定这是用户实际想要进行选择的选项,还是只是沿途遍历的选项。为了演示,这里是jquery网站的任何示例。请注意文本如何随每个向上/向下更改,无论输入键如何:
解答:感谢所有评论者的建议。实际上,解决方案(无论如何我的情况)是在混合中添加一个“keyup”事件监听器。我不能说这将适用于哪些浏览器,但它在Chrome的更高版本中可以正常使用。
答案 0 :(得分:2)
根据建议,获取“隐藏”Enter键事件的方法是添加“keyup”事件监听器;问题已被编辑以反映解决方案。
注意:此答案仅发布以结束问题;请给予应有的信用 - jesus.tesh和其他评论者的建议......