尝试通过在 jquery 中的任何位置键入来设置输入

Posted

技术标签:

【中文标题】尝试通过在 jquery 中的任何位置键入来设置输入【英文标题】:Trying to set input by typing anywhere in jquery 【发布时间】:2021-07-10 12:39:57 【问题描述】:

我正在尝试制作一个游戏,人们不必在输入字段内单击即可输入,并且我通过输入设置输入字段值,除了每种类型都输入一个新字母,它会重置输入字段而不是添加值。这是代码:


$( document).on( "keydown", function( event ) 
  $( ".inputfield" ).val(String.fromCharCode(event.which))
);

【问题讨论】:

先获取输入的val,然后追加下一个代码 您需要验证输入,否则您将在输入中获得控制字符 【参考方案1】:

您需要添加到当前值而不是覆盖它。

$( document).on( "keydown", function( event ) 
  const current_value = $( ".inputfield" ).val();
  const new_value = current_value + String.fromCharCode(event.which);
  $( ".inputfield" ).val(new_value);
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type="text" class='inputfield' />

【讨论】:

谢谢!如果我想使用删除按钮删除最后一个字符呢?【参考方案2】:

您可以使用 val(function) 公开您连接的当前值。

请注意,您需要验证 which 是否在字符代码范围内

$( document).on( "keydown", function( event ) 
   $( ".inputfield" ).val(function(i,curr)
     return curr + String.fromCharCode(event.which)
  );      
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type="text" class='inputfield' />

【讨论】:

谢谢!如果我想使用删除按钮删除最后一个字符呢? 使用.data() 存储当前值,然后对该字符串进行切片并设置新值

以上是关于尝试通过在 jquery 中的任何位置键入来设置输入的主要内容,如果未能解决你的问题,请参考以下文章

JQuery 和地理位置不发送任何数据

如何通过单击jQuery中的html表来添加任何行[重复]

尝试通过单击打开它的 div 中断按钮外部来关闭弹出窗口

从文档中的任何位置访问当前被鼠标悬停的元素[关闭]

jQuery 通过 Ajax 在 ASP.NET MVC C# 中调用 Action 方法

vi编辑器的使用   快捷键