在按键期间阻止表单提交

时间:2016-11-03 11:18:27

标签: javascript forms

这里我有一个带有文本区域的表单。我有一个键盘事件附加到文本区域。用一根手指输入文本区域我按下键,另一只手我单击提交按钮。所以方案是在给文本区域输入时提交表单。如何防止这种情况发生?

<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>

2 个答案:

答案 0 :(得分:0)

true分配给keydown事件中的变量。

在keyup事件中为其分配false

在提交事件中测试它的值,如果是preventDefault则调用true

答案 1 :(得分:0)

这不允许在最后一次按键后提交3秒钟。在keyup事件中,将canSubmit设置为false,然后设置等待3000毫秒的setTimeout超时,然后将值设置回{{1} }。

然后你向表单添加另一个事件监听器,检查truecanSubmit,并调用false,结束那里的事件。

event.preventDefault()