【发布时间】:2021-07-22 03:52:01
【问题描述】:
我想知道以这些不同方式从表单调用 JavaScript 函数之间的区别。
方法一
<form onsubmit="someFunction()">
方法二
<form onsubmit="JavaScript:someFunction()">
方法3
<form onsubmit="return someFunction()">
我在任何 HTML5 form 文档中找不到任何提及 onsubmit 属性的内容(只有一些 HTML4 文档的信息)。我不应该使用它吗?在提交按钮上使用onclick 会更好吗?
【问题讨论】:
-
理想情况下你不应该做任何这些事情。
-
关于您调用“方法 2”的代码,您需要比 Fiven 更好的解释 例如 :: 如果“someFunction”是用说 vbs 编写的,您必须在其中写
<form onsubmit = "VBScript:Call someFunction()">为了执行它,或者如果客户端 UA 不支持它,则优雅地失败。 -
@BekimBacaj — Firefox 和 Chrome 不会因为该代码而优雅地失败。他们都抛出 Uncaught SyntaxError: unexpected token: identifier (因为你有一个标签
VBScript:然后是一个标识符Call然后是一个空格,后跟另一个标识符someFunction) -
@Quentin to bad firefox or chrome 当这是一个标准时甚至不存在,他们把它当作一个标签而不是一个语言定义,他们为此是绿色的。 Firefox 直到最近才知道他们应该使用
null注册元素事件并使用""进行注册 lol -
@BekimBacaj — 所以你说的是曾经有一个标准(但你找不到这个标准来证明它),其中内在事件属性的行为不同,如果你编写的代码符合该标准,那么它会优雅地失败,但前提是最终用户使用的是 18 年前 之前的浏览器?
标签: javascript html forms onsubmit