从输入字段更改变量

时间:2019-02-28 09:27:48

标签: javascript jquery html

我一直在学习一些jQuery并使用w3schools。我的意图是允许用户将其键盘上的任何键绑定到当前的硬编码键。我尝试创建一个变量,并根据文本字段的输入进行了更改,以更改键码,但没有任何运气(就像您在某些游戏中看到的那样,当它们允许您将键映射到另一个游戏时)。我正在研究w3schools,我相信我可以使用切换用例,但是我认为那会太长且不够整洁?

这是我到目前为止所拥有的。 (Alert在这里似乎不起作用,但是通过超链接进入实际的JSFiddle是可行的)

$('input').bind("binding", function(e) {
  alert("Backspace"); //Pop up to see
});

$('input').keyup(function(e) {
  if (e.keyCode == 8) { // 8 = backspace
    $(this).trigger("binding"); //will allow the message to be displayed
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Try it here <input type="text"> Change the input <input class type="text">

任何建议都很感激。谢谢

2 个答案:

答案 0 :(得分:1)

您可以尝试将一个键绑定到退格键。它从第一个输入元素获取输入,然后按下的键绑定到退格键,只有该键才能用作退格键

$('#try').bind("binding", function(e) {
  alert("Backspace"); //Pop up to see
});
var a;
$('#change').keyup(function(e) {
  a = e.keyCode;
  $(this).prop('disabled', true);
});
$('#try').keyup(function(e) {
  if (e.keyCode == a) {
    $(this).trigger("binding"); //will allow the message to be displayed
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Press the key you want to bind to backspace <input type="text" id="change"><br> Change the input <input id="try" type="text">

答案 1 :(得分:0)

默认情况下,绑定的键将为Backspace。您可以通过在第一个输入中键入内容来更改键。只需要一个字符。 然后,当在第二个输入字段中输入该键时,将触发该消息。

说明: 在第一个输入中输入的键的键码保存在key_code变量中,以后在另一个key_up事件中使用以检查其是否匹配

    var key_code = 8
    $('#changekey').keyup("input", function(e) {
      key_code = e.keyCode;
    });

    $('input').on("binding", function(e) {
      alert("Backspace"); //Pop up to see
    });
    $('#text').keyup(function(e) {
      if (e.keyCode == key_code) //8 = backspace
      {
        $(this).trigger("binding"); //will allow the message to be displayed
      }
    });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Try it here <input type="text" id="changekey" maxlength = 1 > Change the input <input class type="text" id="text">