尝试通过在 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 中的任何位置键入来设置输入的主要内容,如果未能解决你的问题,请参考以下文章