Как я могу установить выходную клавишу keyPress в то же поле ввода? - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь получить пользовательское нажатие клавиши и установить его на тот же вход.

Однако в моем input результате я получаю вывод дважды. Например, если пользователь нажимает d, я вижу Dd. Как я могу решить это?

$(document).ready(function() {
  $("#test").keypress(function(e) {
    let key = String.fromCharCode(e.keyCode);
    let upperCaseKey = (key.toUpperCase())
    $("#test").val(upperCaseKey);
    $("#test").css("width", "25px")
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type=text class="myid" id="test" />

Ответы [ 2 ]

0 голосов
/ 21 апреля 2020
<input type=text class="myid" id="test" />




$(".myid").on('keypress', function(evt) {
  $(this).val(function (_, val) {
    return val + String.fromCharCode(evt.which).toUpperCase();
  });

  return false;
});
0 голосов
/ 21 апреля 2020

Предполагая, что ваша цель состоит в том, чтобы ввести значение, введенное пользователем в верхний регистр, вы можете просто позвонить toUpperCase() на value:

jQuery($ => {
  $("#test").on('input', e => e.target.value = e.target.value.toUpperCase());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type=text class="myid" id="test" />

Обратите внимание на использование события input здесь. Это потому, что он также будет охватывать текст, который копируется в поле с помощью мыши.

...