当我按下Enter键时,我需要提交表单的内容,但前提是表单没有错误消息.我建立了以下功能:
$(targetFormID).submit(function (e) {
var mess = error_m(targetDiv);
if (e.keyCode == 13 && mess.length > 0) {
e.preventDefault();
e.stopPropagation();
}
if (mess.length == 0 && e.keyCode == 13) $(targetFormID).submit();
});
Run Code Online (Sandbox Code Playgroud)
在这个函数中,mess变量获取函数返回的错误消息error_m
,其余的是简单的代码条件,但它不起作用.
需要一些帮助!!
使用下面的代码,左箭头键和右箭头键按预期运行,但不识别向上和向下箭头(单步执行它,在适当的情况下满足前两个条件,但后两个条件永远不会):
private void textBox1_KeyDown(object sender, KeyEventArgs e) {
TextBox tb = (TextBox)sender;
if (e.KeyCode.Equals(Keys.Left)) {
SetFocusOneColumnBack(tb.Name);
e.Handled = true;
return;
}
if (e.KeyCode.Equals(Keys.Right)) {
SetFocusOneColumnForward(tb.Name);
e.Handled = true;
return;
}
if (e.KeyCode.Equals(Keys.Up)) {
SetFocusOneRowUp(tb.Name);
e.Handled = true;
return;
}
if (e.KeyCode.Equals(Keys.Down)) {
SetFocusOneRowDown(tb.Name);
e.Handled = true;
return;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么会这样,我该如何解决?
这是我在踩过e.Keycode时看到的内容.如果我按下
e.KeyCode = "LButton | MButton | Space"
e.KeyCode = "LButton | RButton | MButton | Space"
e.KeyCode = "RButton | MButton | Space"
e.KeyCode …
我正在尝试将从/ dev/input/event0读取的键盘事件从定义的值转换为未运行X或终端的嵌入式应用程序中的ASCII等效项.
我认为这应该通过Linux中定义的键盘映射功能来完成,而不仅仅是创建我自己的std :: map <>但我似乎无法找到一个好的起点.到目前为止,我发现的大多数示例都假设我使用的是X窗口或终端.
我需要找到一种方法来检测空间是否被删除或退格,并在这种情况下运行一个函数.我正在使用JavaScript/jQuery进行此操作.
我知道我可以通过使用以下方式获取删除或退格键
$(this).keyup(function(event) {
event.keyCode
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何判断删除或退格命令是否删除了空格?
非常感谢任何建议.
我想将表示键盘上的键的字符串转换为像Qt :: Key(或其他任何东西)的键码枚举.转换示例如下:
"Ctrl"
至 Qt::Key_Control
"Up"
至 Qt::Key_Up
"a"
至 Qt::Key_A
"5"
至 Qt::Key_5
如您所见,上面不仅包括字母数字键,还包括修饰符和特殊键.我没有连接到Qt的键码枚举,但似乎Qt拥有在这个分析功能QKeySequence
的fromString
静态函数(见本直接链接):
QKeySequence fromString(const QString & str, SequenceFormat format);
Run Code Online (Sandbox Code Playgroud)
您可能就像我需要这种转换一样.好吧,我有一个由GhostMouse生成的数据文件.这是我输入内容的日志.这是我输入的一个例子" It "
:
{SPACE down}
{Delay 0.08}
{SPACE up}
{Delay 2.25}
{SHIFT down}
{Delay 0.11}
{i down}
{Delay 0.02}
{SHIFT up}
{Delay 0.03}
{i up}
{Delay 0.05}
{t down}
{Delay 0.08}
{t up}
{Delay 0.05}
{SPACE down}
{Delay 0.12}
{SPACE up}
Run Code Online (Sandbox Code Playgroud)
所以我需要一种方法将字符串"SPACE"和表示此数据文件中的键的所有其他字符串转换为唯一的int
.
在我的HTML页面中有一个输入文本字段.我只想输入键盘上的数字键和左/右箭头.我尝试了以下JavaScript,但遇到了一个问题.
<input onkeypress="return allowNumberOnly(event)" />
function allowNumberOnly(event) {
event = event || window.event;
var charCode = (event.which) ? event.which : event.keyCode;
//keyCode 48-57 represent the number 0-9
//keyCode 37,39 represent the Left and Right arrow
//keyCode 46 represent the Delete key
//keyCode 8 represent the Backspace key
return charCode == 37 || charCode == 39 || charCode == 46 || charCode == 8
|| (charCode >= 48 && charCode <= 57);
}
Run Code Online (Sandbox Code Playgroud)
测试完这段代码后,我发现左箭头和%特殊字符的keyCode都是37的问题.所以我不能阻止用户输入%字符,同时允许左箭头.我不知道为什么会这样.我一直认为keyCode对于键盘上的每个键都应该是唯一的.我想过使用onkeyup而不是onkeypress.但是onkeyup会允许用户先输入无效字符,然后从输入文本中删除.这种行为不是我想要的.任何建议将不胜感激.
我调试了FireFox中的代码,发现了以下区别.
1.如果输入%,event.which == 37和event.keyCode == 0
2.如果输入左箭头,则event.which …
我想将keyevent键码值转换为字符串或char值.任何人都会这样做.
例如,当我按下'SPACE'时,'让我们说'有一个键码20,我想将该值转换为char或字符串.有没有标准的方法,或者我必须为键盘上的每个键写一堆'if'语句?
看看这个现场演示(来自jQuery的网站).
点击-
(DASH)在Firefox说event.which
是173
,一边做同样的在Chrome中产生189
.
这个jQuery页面说event.which
应该针对跨浏览器的一致性进行规范化.但是,看起来这不是真的.
为什么这种不一致?
我想通过自动化点击iOS模拟器中的主页按钮.
我只是想知道是否可以使用IOS keycode事件单击主页按钮.
keypress
不推荐使用javascript事件:https :
//developer.mozilla.org/en-US/docs/Web/API/Document/keypress_event
有些人建议完全依赖keydown
事件,例如:
Keydown
是我们唯一需要的键盘事件
https://www.mutuallyhuman.com/blog/2018/03/27/keydown-is-the-only-keyboard-event-我们需要/
问题是keydown
和keypress
不是同义词。至关重要的是,它们在许多/大多数情况下不会返回相同的字符。Keydown
表示按下了键盘上的哪个键,而keypress
表示用户实际键入的字符。
在英语中,区分大小写很重要:
letter = String.fromCharCode(event.which);
Run Code Online (Sandbox Code Playgroud)
当按下键盘上的“a”键时,字母是“a”加keypress
,但它是“A”加keydown
。
JCK 语言的情况变得更加复杂,因为keypress
接收正确的国际键盘布局字符,而不是keydown
将所有内容转换为单字节字符。
现在在 IME 组合过程中会触发 keydown 和 keyup 事件:https :
//www.fxsitecompat.com/en-CA/docs/2018/keydown-and-keyup-events-are-now-fired-during-ime-composition/
那么,随着keypress
被弃用,当我们关心用户打算输入的字符时,我们应该使用什么,考虑大小写、非 ASCII 字符和多字节字符?
相关问题和参考:
keyup 事件总是返回大写字母
=> 答案推荐使用keypress
.
String.fromCharCode 不适用于 keydown 事件
=> 答案建议使用keypress
.
keypress 和 keydown 上的 String.fromCharCode 返回错误的字符
=> 答案指出keypress
和keydown
事件不可互换。