箭头键在表单上不起作用
Arrow Keys Not Working on Form
我们在特定站点上使用 Ninja Forms,每当我们在上面键入内容时,箭头键就不起作用。我做了一项研究,发现向这个社区提供了类似的东西 (here)。
所以我确实检查了网站的 JS 文件,并准确地找到了提到的内容。我注意到我认为这组代码负责禁用箭头键:
// disable/enable scroll (mousewheel and keys) from
// 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;
}
}
}
但我不确定下一步该怎么做,因为我最初提到的那个资源没有说明分步过程。我应该删除整套代码吗?我绝对可以做一个测试,但我想我可能会认为它有效,而实际上还有一些我可能没有注意到的其他变化。
感谢社区的指导。谢谢
我可能应该为实际表格提供一个 link。 Here you go.
您可以使用 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;
}
}
}
我们在特定站点上使用 Ninja Forms,每当我们在上面键入内容时,箭头键就不起作用。我做了一项研究,发现向这个社区提供了类似的东西 (here)。
所以我确实检查了网站的 JS 文件,并准确地找到了提到的内容。我注意到我认为这组代码负责禁用箭头键:
// disable/enable scroll (mousewheel and keys) from
// 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;
}
}
}
但我不确定下一步该怎么做,因为我最初提到的那个资源没有说明分步过程。我应该删除整套代码吗?我绝对可以做一个测试,但我想我可能会认为它有效,而实际上还有一些我可能没有注意到的其他变化。
感谢社区的指导。谢谢
我可能应该为实际表格提供一个 link。 Here you go.
您可以使用 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;
}
}
}