javascript - PreventDefault 和 type Submit 如何与表单配合使用?

标签 javascript forms submit form-submit

所以当我使用 JS 并尝试提交输入时,我尝试了一些事情,但有一些奇怪的事情我不理解逻辑。

  1. <input tpye="submit/> 之间存在差异。 <form>的内部和外部标签。如果它位于表单标签内,我需要使用 preventDefault()函数,但如果它在表单标记之外,如果编写简单的 js 普通代码,我不需要这样做。 这是为什么?

  2. onsubmit 和 onclick 之间有什么区别?特别是在表单标签中。因为如果我使用 onsubmit js 代码实际上不起作用。

  3. 如果我使用preventDefault(event)它阻止表单发送到服务器,而是仅使用浏览器进行计算?

谢谢!

最佳答案

默认情况下,如果表单中有“提交”类型的输入,则单击该输入(或在表单中填写任何输入后按回车键)将向服务器发送 post 或 get 请求,重定向当前的输入页面到服务器的响应。

这是向服务器提交表单数据的原始方法,无需使用 JavaScript。如果您想防止这种情况发生,您可以用普通按钮 ( <button onclick="doSomething()">Submit</button> ) 替换提交输入,或阻止默认提交事件: ( form.onsubmit = event => event.preventDefault() )。

onsubmit之间的区别和onclickonsubmit仅当从表单发出提交事件时触发。要发出提交事件,表单需要 <input type="submit">被点击,或者用户通过按回车键触发提交。

防止这种默认行为的另一种方法是 return false在提交处理程序中。

onclick仅当单击元素时才会触发。因为 javascript 中的事件会传播到父级,所以这也会触发任何 onclick所有父元素上的处理程序。

如果您想完全忽略默认的表单提交行为,那么您可以定义一个带有 onclick 处理程序的按钮来处理您的自定义提交逻辑。

关于javascript - PreventDefault 和 type Submit 如何与表单配合使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59201401/

相关文章:

jQuery Ajax - 检查字段后如何继续提交表单

javascript - 绑定(bind)和取消绑定(bind)函数

javascript - 如何使用nodeJS接收简单的一行用户输入?

c# - Windows Form 在不阻塞 UI 的情况下运行外部进程

javascript - 表单提交数据到数据库和url

带有输入数组的 jQuery 验证插件

PHP 阻止一个人多次按“提交”

asp.net webforms + jquery = 无法按下按钮

javascript - Node : Run Mysql queries synchronously

javascript - 如何更改 Foundation Joyride 中特定索引的提示位置?