Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表格';s";行动“;及;onsubmit“提交:哪个先执行?_Javascript_Html_Forms_Post - Fatal编程技术网

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从不调用。