我们在特定网站上使用Ninja Forms,每当我们在其上键入内容时,箭头键就不起作用了。我做了一项研究,发现了一些与此社区相似的内容(here)。
所以我确实检查了网站的JS文件,并确切地找到了所提到的内容。我注意到这组代码,我认为这些代码负责禁用箭头键:
// disable/enable scroll (mousewheel and keys) from https://stackoverflow.com/a/4770179
// left: 37, up: 38, right: 39, down: 40,
// spacebar: 32, pageup: 33, pagedown: 34, end: 35, home: 36
var keys = [37, 38, 39, 40], wheelIter = 0;
function preventDefault(e) {
e = e || window.event;
if (e.preventDefault)
e.preventDefault();
e.returnValue = false;
}
function keydown(e) {
for (var i = keys.length; i--;) {
if (e.keyCode === keys[i]) {
preventDefault(e);
return;
}
}
}
但我不确定接下来要做什么,因为我最初提到的那个资源并没有说明一步一步的程序。我应该删除整套代码吗?我绝对可以做一个测试,但我想我可能会认为它确实有效,但实际上我可能没有注意到其他一些变化。
欢迎来自社区的指导。感谢。
我可能应该提供实际表格的链接。 Here you go
答案 0 :(得分:0)
您可以使用jQuery检查目标是否是表单元素(因为您正在使用它),如果是这样,则不要调用阻止默认行为的讨厌代码。
function keydown(e) {
// Don't block arrow keys on form elements
if( $(e.target).is(':input') ) {
return;
}
for (var i = keys.length; i--;) {
if (e.keyCode === keys[i]) {
preventDefault(e);
return;
}
}
}