在javascript中使用tab键触发事件

在javascript中使用tab键触发事件,javascript,Javascript,我使用空格键翻译输入的文本使用谷歌API。我想用tab键完成同样的任务 <script> function OnLoad() { var options = { sourceLanguage: google.elements.transliteration.LanguageCode.ENGLISH, destinationLanguage: [google.elements.transliteration.LanguageCode.HINDI], shor

我使用空格键翻译输入的文本使用谷歌API。我想用tab键完成同样的任务

<script>
function OnLoad() {
  var options = {
    sourceLanguage: google.elements.transliteration.LanguageCode.ENGLISH,
    destinationLanguage: [google.elements.transliteration.LanguageCode.HINDI],
    shortcutKey: 'ctrl+g',
    transliterationEnabled: true
  };

  var control = new google.elements.transliteration.TransliterationControl(options);
  control.makeTransliteratable(["txtHindi"]);
  var keyVal = 32; // Space key
  //var keyTab = 9;  //tab key
  $("#txtEnglish").on('keydown', function(event) {
    if (event.keyCode === 32 || event.keyCode === 9) {
      var engText = $("#txtEnglish").val() + " ";
      var engTextArray = engText.split(" ");
      $("#txtHindi").val($("#txtHindi").val() + engTextArray[engTextArray.length - 2]);
      document.getElementById("txtHindi").focus();
      $("#txtHindi").trigger({
        type: 'keypress',
        keyCode: keyVal,
        which: keyVal,
        charCode: keyVal
      });
    }
    if (event.keyCode == 8) {
      $("#txtHindi").val("");
      $("#txtEnglish").val("");
      return false;
    }
  });

  $("#txtHindi").bind("keyup", function(event) {
    setTimeout(function() {
      $("#txtEnglish").val($("#txtEnglish").val() + " ");
      document.getElementById("txtEnglish").focus()
    }, 0);
  });
} //end onLoad function

google.setOnLoadCallback(OnLoad);

函数OnLoad(){
变量选项={
sourceLanguage:google.elements.Translation.LanguageCode.ENGLISH,
destinationLanguage:[google.elements.Translation.LanguageCode.HINDI],
快捷键:“ctrl+g”,
音译:正确
};
var-control=newgoogle.elements.translation.translationcontrol(选项);
control.makeTranslateratable([“txtHindi”]);
var keyVal=32;//空格键
//var keyTab=9;//制表键
$(“#txtEnglish”)。on('keydown',函数(事件){
if(event.keyCode==32 | | event.keyCode==9){
var engText=$(“#txtEnglish”).val()+”;
var engTextArray=engText.split(“”);
$(“#txtHindi”).val($(“#txtHindi”).val()+engtextary[engtextary.length-2]);
document.getElementById(“txtHindi”).focus();
$(“#印地语”)。触发器({
键入:“按键”,
keyCode:keyVal,
其中:凯瓦尔,
字符码:keyVal
});
}
如果(event.keyCode==8){
$(“#印地语”).val(“”);
$(“#txtEnglish”).val(“”);
返回false;
}
});
$(“#txtHindi”).bind(“keyup”,函数(事件){
setTimeout(函数(){
$(“#txtEnglish”).val($(“#txtEnglish”).val()+”);
document.getElementById(“txtEnglish”).focus()
}, 0);
});
}//结束onLoad函数
setOnLoadCallback(OnLoad);

你的东西怎么了
event.keyCode===9
应与tab键匹配。
keyboardEvent.keyCode
不推荐使用。我建议你使用
event.key===“Tab”
看看哪个不依赖于键盘(qwerty/azerty…)问题是当我按Tab键时,英文框中的文本被正确复制到印地语框中,触发部分也工作正常。只是翻译部分没有被执行…(“document.getElementById(“txtHindi”).focus();”)。上述语句中提到的focus()函数不执行此转换部分,但它不起作用:(