Javascript 如何获取keypress值以获取下拉列表中的TAB键代码
我有两个下拉列表框。应该发生的是,在第一个下拉菜单中选择一个值并按下TAB键后,第二个下拉菜单应该检查第一个下拉菜单是否真的按下TAB键 关于这个问题,这里有一个粗略的代码想法 HTMLJavascript 如何获取keypress值以获取下拉列表中的TAB键代码,javascript,jquery,html,Javascript,Jquery,Html,我有两个下拉列表框。应该发生的是,在第一个下拉菜单中选择一个值并按下TAB键后,第二个下拉菜单应该检查第一个下拉菜单是否真的按下TAB键 关于这个问题,这里有一个粗略的代码想法 HTML 注意:在下拉框和文本框之间可能有另一个字段,可以显示/隐藏,但流程仍然遵循CarColor应该知道前一个元素是否按下了TAB键或鼠标按下。尝试类似的操作 var Car = { modelChangeTabPressed: false, modelChange: function() { $('
注意:在下拉框和文本框之间可能有另一个字段,可以显示/隐藏,但流程仍然遵循CarColor应该知道前一个元素是否按下了TAB键或鼠标按下。尝试类似的操作
var Car = {
modelChangeTabPressed: false,
modelChange: function() {
$('#CarModel').keyup(function(e) {
Car.modelChangeTabPressed = (e.keyCode || e.which) === '9'
});
},
colorChange: function() {
$('#CarColor').change(function() {
if (Car.modelChangeTabPressed) {
//Tab was pressed
} else {
//Mouse click or some other way
}
});
}
}
确保调用方法来初始化绑定,如下所示
Car.modelChange();
Car.colorChange();
试试这样的
var Car = {
modelChangeTabPressed: false,
modelChange: function() {
$('#CarModel').keyup(function(e) {
Car.modelChangeTabPressed = (e.keyCode || e.which) === '9'
});
},
colorChange: function() {
$('#CarColor').change(function() {
if (Car.modelChangeTabPressed) {
//Tab was pressed
} else {
//Mouse click or some other way
}
});
}
}
确保调用方法来初始化绑定,如下所示
Car.modelChange();
Car.colorChange();
在第二个元素上触发焦点事件时,可以检查事件对象上的,以确定选择菜单从哪个元素接收焦点
在下面的示例中,keyup事件附加到第一个元素,以确定是否按下了tab键,即键9
在附加到第二个元素的焦点事件侦听器中,可以检查relatedTarget属性是否引用第一个元素,然后检查在元素获得焦点之前是否按下了tab键
片段:
var modelSelect=document.getElementById'CarModel';
var colorSelect=document.getElementById'CarColor';
var-previousKeyupEvent=null;
modelSelect.addEventListener'keyup',functionevent{
previousKeyupEvent=事件;
};
colorSelect.addEventListener'focus',functionevent{
变量条件=event.relatedTarget===modelSelect&&
前一个关键事件&&
previousKeyupEvent.keyCode==9;
如果条件{
console.log'Tabbed from CarColor';
}否则{
console.log“未从CarColor中制表”;
}
previousKeyupEvent=null;//重置变量
};
一二
一二
在第二个元素上触发焦点事件时,可以检查事件对象上的,以确定选择菜单从哪个元素接收焦点
在下面的示例中,keyup事件附加到第一个元素,以确定是否按下了tab键,即键9
在附加到第二个元素的焦点事件侦听器中,可以检查relatedTarget属性是否引用第一个元素,然后检查在元素获得焦点之前是否按下了tab键
片段:
var modelSelect=document.getElementById'CarModel';
var colorSelect=document.getElementById'CarColor';
var-previousKeyupEvent=null;
modelSelect.addEventListener'keyup',functionevent{
previousKeyupEvent=事件;
};
colorSelect.addEventListener'focus',functionevent{
变量条件=event.relatedTarget===modelSelect&&
前一个关键事件&&
previousKeyupEvent.keyCode==9;
如果条件{
console.log'Tabbed from CarColor';
}否则{
console.log“未从CarColor中制表”;
}
previousKeyupEvent=null;//重置变量
};
一二
一二
你必须在CarModel上做一次更改并设置一个标志;然后在车上检查那面旗。嗯。。。1在CarModel中的onchange期间,如果在这两者之间可能有一个文本框,那么如何添加一个标志?2由于onchange无法检测到任何按键,如何进行此操作?请检查我的答案。。像这样的事情应该对你有帮助,你必须在CarModel上做一次更改,并设置一面旗帜;然后在车上检查那面旗。嗯。。。1在CarModel中的onchange期间,如果在这两者之间可能有一个文本框,那么如何添加一个标志?2由于onchange无法检测到任何按键,如何进行此操作?请检查我的答案。。从技术上来说,这应该对你有帮助,我没有办法从onchange事件中获得任何按键,对吗?从技术上来说,我没有办法从onchange事件中获得任何按键,对吗?
var modelSelect = document.getElementById('CarModel');
var colorSelect = document.getElementById('CarColor');
var previousKeyupEvent = null;
modelSelect.addEventListener('keyup', function(event) {
previousKeyupEvent = event;
});
colorSelect.addEventListener('focus', function(event) {
var condition = event.relatedTarget === modelSelect &&
previousKeyupEvent &&
previousKeyupEvent.keyCode === 9;
if (condition) {
console.log('Tabbed from #CarColor');
} else {
console.log('Did not tab from #CarColor');
}
previousKeyupEvent = null; // Reset the variable
});