以下是我的代码
$('#myDIV').keydown(function (event) {
var key=event.which || event.charCode;
if(key == 13) // the enter key code
{
event.preventDefault();
importItem();
}
});
当我多次按下enter按钮时,多次调用importItem(),我该如何防止这种情况?我没有在这里提交fucntion来使用issubmitted类型的代码。
答案 0 :(得分:1)
{{1}}
答案 1 :(得分:1)
您可以通过创建一个事件来防止在您验证其数据后提交,例如:
/bin/sh
const form = document.querySelector("form")
function importItem(e){
// Your function...
e.preventDefault() // Remove this
console.log("Form submitted")
form.removeEventListener("submit", importItem)
form.addEventListener("submit", e => e.preventDefault())
}
form.addEventListener("submit", importItem)
注意:使用了第一个 <form>
<input type="text" placeholder="Hold enter key">
</form>
,因此表单无法重定向页面,您可以将其删除。
答案 2 :(得分:0)
使用setTimeout()来延迟和阻止多次执行代码。
var timeout = null;
$('#myDIV').keydown(function (event) {
var key=event.which || event.charCode;
if(key == 13) // the enter key code
{
event.preventDefault();
if(timeout != null){
clearTimeout(timeout);
timeout = null;
}
timeout = setTimeout(function(){
importItem();
}, 1000);
}
});