Javascript 默认值和类型提交如何处理表单?
所以当我使用JS并尝试提交输入时,我尝试了一些事情,但有些奇怪的事情我不理解逻辑Javascript 默认值和类型提交如何处理表单?,javascript,forms,submit,form-submit,Javascript,Forms,Submit,Form Submit,所以当我使用JS并尝试提交输入时,我尝试了一些事情,但有些奇怪的事情我不理解逻辑 默认情况下,之间存在差异,如果表单中有“提交”类型的输入,则单击该输入(或在表单中填写任何输入后单击enter)将向服务器发送post或get请求,将当前页面重定向到服务器的响应 这是向服务器提交表单数据的原始方法,不使用javascript。如果要防止这种情况发生,可以使用普通按钮(submit)替换提交输入,或防止默认提交事件:(form.onsubmit=event=>event.preventDefault
之间存在差异,如果表单中有“提交”类型的输入,则单击该输入(或在表单中填写任何输入后单击enter)将向服务器发送post或get请求,将当前页面重定向到服务器的响应
这是向服务器提交表单数据的原始方法,不使用javascript。如果要防止这种情况发生,可以使用普通按钮(submit
)替换提交输入,或防止默认提交事件:(form.onsubmit=event=>event.preventDefault()
)
onsubmit
和onclick
之间的区别在于onsubmit
仅在表单发出提交事件时触发。要发出提交事件,表单需要单击
,或者用户通过按enter键触发提交
防止此默认行为的另一种方法是在提交处理程序中返回false
onclick
仅在单击元素时触发。因为javascript中的事件会传播到父元素,这也会触发所有父元素上的任何onclick
处理程序
如果要完全忽略默认表单提交行为,则可以定义一个带有onclick处理程序的按钮来处理自定义提交逻辑。默认情况下,如果表单中有“提交”类型的输入,则单击该输入(或在填写表单中的任何输入后单击enter)将向服务器发送post或get请求,将当前页面重定向到服务器的响应
这是向服务器提交表单数据的原始方法,不使用javascript。如果要防止这种情况发生,可以使用普通按钮(submit
)替换提交输入,或防止默认提交事件:(form.onsubmit=event=>event.preventDefault()
)
onsubmit
和onclick
之间的区别在于onsubmit
仅在表单发出提交事件时触发。要发出提交事件,表单需要单击
,或者用户通过按enter键触发提交
防止此默认行为的另一种方法是在提交处理程序中返回false
onclick
仅在单击元素时触发。因为javascript中的事件会传播到父元素,这也会触发所有父元素上的任何onclick
处理程序
如果希望完全忽略默认表单提交行为,则可以定义一个带有onclick处理程序的按钮来处理自定义提交逻辑
如果表单中有一个type=“submit”
输入(注意),则单击时的默认操作是提交该表单。要防止其提交,请将按钮放在
外部。这是因为按钮没有引用任何要提交的表单。相反,您可以添加一个侦听器并调用。这是因为您告诉浏览器不要执行默认操作(提交表单)
onsubmit
主要用于
元素。无论表单如何提交,它都会在表单提交之前触发onclick
几乎可以从任何元素发出。当您单击某个图元时会发生此错误。这可能在
上,也可能在
上。甚至是整个
不要用这个
如果表单中有一个type=“submit”
输入(注意),则单击时的默认操作是提交该表单。要防止其提交,请将按钮放在
外部。这是因为按钮没有引用任何要提交的表单。相反,您可以添加一个侦听器并调用。这是因为您告诉浏览器不要执行默认操作(提交表单)
onsubmit
主要用于
元素。无论表单如何提交,它都会在表单提交之前触发onclick
几乎可以从任何元素发出。当您单击某个图元时会发生此错误。这可能在
上,也可能在
上。甚至是整个
不要用这个
请出示你的密码。听起来有点混乱。表单内的submit按钮将提交表单,并且需要停止此操作,而不是在外部。有道理,不是吗?这能回答你的问题吗@GoranStoyanov实际上不是,它只是说它阻止了提交。也许我只是不明白“阻止提交”是什么意思。是否阻止表单发送到服务器,而不是在浏览器上进行计算?请显示您的代码。听起来有点混乱。表单内的submit按钮将提交表单,并且需要停止此操作,而不是在外部。有道理,不是吗?这能回答你的问题吗@GoranStoyanov实际上不是,它只是说它阻止了提交。也许我只是不明白“阻止提交”是什么意思。是否阻止表单发送到服务器,而不是在浏览器上进行计算?非常感谢。如果我阻止表单发送到服务器,那么js代码仍然可以工作。谁做所有的计算?浏览器?是的,您必须自己实现提交逻辑(例如:从表单输入中获取值并使用这些值进行操作)。非常感谢。如果我阻止表单发送到服务器,那么js代码仍然可以工作。谁做所有的计算?浏览器?是的,您必须自己实现提交逻辑(例如:从表单输入中获取值并执行一些操作)