Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取keypress值以获取下拉列表中的TAB键代码_Javascript_Jquery_Html - Fatal编程技术网

Javascript 如何获取keypress值以获取下拉列表中的TAB键代码

Javascript 如何获取keypress值以获取下拉列表中的TAB键代码,javascript,jquery,html,Javascript,Jquery,Html,我有两个下拉列表框。应该发生的是,在第一个下拉菜单中选择一个值并按下TAB键后,第二个下拉菜单应该检查第一个下拉菜单是否真的按下TAB键 关于这个问题,这里有一个粗略的代码想法 HTML 注意:在下拉框和文本框之间可能有另一个字段,可以显示/隐藏,但流程仍然遵循CarColor应该知道前一个元素是否按下了TAB键或鼠标按下。尝试类似的操作 var Car = { modelChangeTabPressed: false, modelChange: function() { $('

我有两个下拉列表框。应该发生的是,在第一个下拉菜单中选择一个值并按下TAB键后,第二个下拉菜单应该检查第一个下拉菜单是否真的按下TAB键

关于这个问题,这里有一个粗略的代码想法

HTML


注意:在下拉框和文本框之间可能有另一个字段,可以显示/隐藏,但流程仍然遵循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
});