【发布时间】:2020-07-14 11:20:51
【问题描述】:
我正在尝试创建一个输入字段,在按下输入时提交。当我尝试使用 submit() 函数时,我会重置默认页面。我不知道如何取消这个。我尝试使用事件侦听器进行提交,甚至将匿名函数传递给 submit(),但似乎都不起作用。
addTask.oninput = () => {
window.onkeydown = (key) => {
if (key.keyCode === 13) {
newTaskForm.submit()
console.log(newTaskForm.addTask.value)
}
}
}
PS:如果你认为这是我已经尝试过的其中之一,请说出来。可能只是弄乱了一些语法。
【问题讨论】:
-
那么..您想在输入时提交表单但阻止一起提交?
-
不,我想阻止重置页面。这就是函数的作用不是吗?
-
submit将表单提交到表单action中的页面,如果未设置,则提交到自身。听起来它正在做它应该做的事情。否则你可能想使用 xhr。 -
@TomášČikovský 页面必须重定向才能将数据提交到服务器,除非您使用 ajax 请求提交数据。
-
如果您使用
preventDefault(),您不会阻止重新加载,您会阻止表单提交。正是表单提交本身导致您根据表单的target转到新位置。如果目标是同一个页面,那么提交将点击同一个 URL 并重新加载页面,但您会丢失所有数据。如果你想提交并停留,很可能你需要使用AJAX将数据发送到后端。