Javascript 表格';s";行动“;及;onsubmit“提交:哪个先执行?
我试图调试一个网页,我看到一个表单元素,它的开头是Javascript 表格';s";行动“;及;onsubmit“提交:哪个先执行?,javascript,html,forms,post,Javascript,Html,Forms,Post,我试图调试一个网页,我看到一个表单元素,它的开头是 <form name="aspnetForm" method="post" action="default.aspx" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm"> 我只知道web表单s的基本知识,我想知道操作和提交的执行顺序是什么 必须首先执行onsubmit,因为返回false会停止表单的提交,从而停止请求操作。如果操作首先得到解决,那么
<form name="aspnetForm" method="post" action="default.aspx" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm">
我只知道web
表单
s的基本知识,我想知道操作
和提交
的执行顺序是什么 必须首先执行onsubmit
,因为返回false会停止表单的提交,从而停止请求操作。如果操作
首先得到解决,那么浏览器将离开页面,JS执行环境将消失,而且在submit上没有地方运行JS,所以它不是
事件处理程序在默认操作之前运行。他们可以取消默认操作。这在HTML5规范中有解释:
当元素表单从元素提交时
submitter(通常是一个按钮),可选地设置了SubmittedFrom方法标志,用户代理必须运行
以下步骤:
让表单文档成为表单的一部分
如果表单文档没有关联,或者它有自己的集合,则不做任何操作就中止这些步骤
让表单浏览上下文成为文档的表单
如果未设置SubmittedFrom方法标志,且submitter元素为false,则
形式和检查
结果:如果结果为阴性(约束验证结束
存在无效字段,可能已通知用户)
然后在表单元素处命名为无效
然后中止这些步骤
如果未设置SubmittedFrom方法标志,则该标志将冒泡并可取消
提交
,格式为。如果事件的默认操作被阻止(即。
如果事件已取消),则中止这些步骤。否则,请继续
(实际上,默认操作是执行提交)
让表单数据集成为提交者上下文中表单的结果
让动作成为提交者元素的动作
如果action是空字符串,则将action设置为表单文档
相对于提交者元素的URL操作。如果失败,请中止这些步骤
让行动成为结果
让动作组件成为结果
让方案成为结果的基础
让enctype成为提交者元素的
让方法成为提交者元素的
让target为提交者元素的
如果用户在提交表单时指定了要使用的特定内容,那么让目标浏览上下文为
. 否则,使用目标作为
名称和表单浏览上下文作为
执行算法,并将目标浏览上下文作为
结果
如果目标浏览上下文是在上一步中创建的,或者,如果表单文档尚未创建且submitted from方法标志为
设置,然后让replace为true。否则,就让它成为假的
否则,根据每行第一个单元格给出的scheme值,在下表中选择适当的行。那么,
根据method的值在该行上选择适当的单元格
如每列第一个单元格所示。然后,跳到台阶上
在该单元格中命名,并在下表中定义
| GET | POST
-------------------------------------------------------
http | Mutate action URL |作为实体体提交
https | Mutate action URL |作为实体体提交
ftp |获取操作URL |获取操作URL
javascript |获取操作URL |获取操作URL
数据|获取操作URL |发布到数据:
mailto |邮件标题|邮件正文
如果方案不是此表中列出的方案之一,则此规范不定义该行为。用户代理应该,在
如果没有其他规范对此进行定义,则以某种方式进行操作
类似于本规范中定义的类似方案
因此,在步骤5,将触发submit
,并且可以取消它以防止表单提交。操作在此之后得到解决。onsubmit
首先执行,以检查格式等。然后执行操作
以获取数据/将数据发布到后端。javascript:
在onsubmit中无效如果表单有效且正确提及操作,则onsubmit从不调用。