onsubmit=“return false”是什么意思?(JavaScript,jQuery)

What is the meaning of onsubmit="return false"? (JavaScript, jQuery)

本文关键字:JavaScript jQuery 意思 是什么 return false onsubmit      更新时间:2023-09-26

我知道提交表单时会发生onsubmit事件。

通常,我们在onsubmit事件上调用一个方法,例如<form action="" onsubmit="myfunction()">

今天我看到了这个,"<form action="" onsubmit="return false">".它是如何工作的?我不明白onsubmit="return false"是什么意思.

PS:我在学习Ajax时发现了这个。这是一个教程,解释了如何在不刷新页面的情况下将数据提交到数据库。

这基本上是为了通过JavaScript处理表单提交。

例如 - 用于验证目的

请参阅下面的代码,看看它是如何有益的:

<script language="JavaScript">
myFunctionName() {
    if (document.myForm.myText.value == '')
        return false;
        // When it returns false - your form will not submit and will not redirect too
    else
        return true;
     // When it returns true - your form will submit and will redirect
// (actually it's a part of submit) id you have mentioned in action
}
</script>
<form name="myForm" onSubmit="return myFunctionName()">
<input type="text" name="myText">
<input type="submit" value="Click Me">
</form>

根据 HTML 标准,onsubmit 是事件处理程序的名称。事件处理程序内容属性被视为 JavaScript 函数的 FunctionBody,它将用于处理关联的事件。在"事件处理程序处理算法"的步骤 5 中,它说"按如下方式处理返回值":

  • 如果事件是 BeforeUnloadEvent 对象,并且事件的类型是 beforeunload
    • 在这种情况下,事件处理程序 IDL 属性的类型将为 OnBeforeUnloadEventHandler,因此返回值将被强制转换为 null 或 DOMString。
    • 如果返回值不为空,则:
      • 设置事件的已取消标志。
      • 如果事件的 returnValue 属性的值为空字符串,则将事件的 returnValue 属性的值设置为返回价值。
  • 如果特殊错误事件处理为 true
    • 如果返回值为 true,则设置事件的已取消标志。
  • 否则
    • 如果返回值为 false,则设置事件的已取消标志。

因此,简而言之,return false将取消事件(或者在这种情况下,取消表单提交)。

如果您

使用的是按钮而不是提交,如下所示:

 <form name="myForm" onSubmit="myFunctionName(); return false">
    <input type="text" name="myText">
    <input type="button" value="Click Me" onclick="myFunctionName()">
 </from>

这有效地防止了表单在任何除非在脚本控制下(通过form.submit(),其中不触发提交事件)

参考资料:查询在行动第三版(影响事件传播和语义动作,第143页)