如何将输出 keyPress 设置为相同的输入字段?
How can i set the output keyPress to the same input field?
我正在尝试获取用户按键输出并将其设置为相同的输入。
但是在我的 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" />
假设您的目标是强制用户输入的值是大写的,您可以简单地在 value
:
上调用 toUpperCase()
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
事件的使用。这是因为它还会覆盖使用鼠标复制到字段中的文本。
<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;
});
我正在尝试获取用户按键输出并将其设置为相同的输入。
但是在我的 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" />
假设您的目标是强制用户输入的值是大写的,您可以简单地在 value
:
toUpperCase()
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
事件的使用。这是因为它还会覆盖使用鼠标复制到字段中的文本。
<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;
});