这里我有一个带有文本区域的表单。我有一个键盘事件附加到文本区域。用一根手指输入文本区域我按下键,另一只手我单击提交按钮。所以方案是在给文本区域输入时提交表单。如何防止这种情况发生?
<html>
<body>
<form action='sample.php' method='post'>
<input type='text' id='mytext' value=''>
<input type='submit' value='submit'>
</form>
<script>
document.getElementById('mytext').addEventListener('keyup',function(){
console.log("keyup");
})
</script>
</body>
</html>
答案 0 :(得分:0)
将true
分配给keydown事件中的变量。
在keyup事件中为其分配false
。
在提交事件中测试它的值,如果是preventDefault
则调用true
。
答案 1 :(得分:0)
这不允许在最后一次按键后提交3秒钟。在keyup
事件中,将canSubmit
设置为false
,然后设置等待3000毫秒的setTimeout
超时,然后将值设置回{{1} }。
然后你向表单添加另一个事件监听器,检查true
是canSubmit
,并调用false
,结束那里的事件。
event.preventDefault()