Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.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 表单onSubmit vs onClick { e、 预防默认值(); 警报(“点击”); }} > 点击_Javascript_Html_Forms_Reactjs - Fatal编程技术网

Javascript 表单onSubmit vs onClick { e、 预防默认值(); 警报(“点击”); }} > 点击

Javascript 表单onSubmit vs onClick { e、 预防默认值(); 警报(“点击”); }} > 点击,javascript,html,forms,reactjs,Javascript,Html,Forms,Reactjs,如果我将onClick处理程序移动到,我将得到完全相同的行为 我在谷歌上搜索的大多数答案都表明,区别在于,onClick不会对通过return按键提交表单做出反应,但这与codesandbox示例中的情况不同 除了处理DOM操作/事件模拟之外,它们什么时候会有不同的行为?基本上,这取决于浏览器。当按下返回键提交表单时,某些浏览器可能会调用submit按钮的onClick,但标准并不强制执行此操作。如果选择了提交按钮,则其他人可能仅在按下return时调用onClick。其他人可能不会启动它,除非

如果我将
onClick
处理程序移动到,我将得到完全相同的行为

我在谷歌上搜索的大多数答案都表明,区别在于,
onClick
不会对通过
return
按键提交表单做出反应,但这与codesandbox示例中的情况不同


除了处理DOM操作/事件模拟之外,它们什么时候会有不同的行为?

基本上,这取决于浏览器。当按下返回键提交表单时,某些浏览器可能会调用submit按钮的
onClick
,但标准并不强制执行此操作。如果选择了提交按钮,则其他人可能仅在按下return时调用
onClick
。其他人可能不会启动它,除非手动单击该按钮


如果您想获得最佳的可移植性,请使用
onSubmit
了解其设计目的:检测表单提交。

另一个主要区别是事件的目标

<form>
  <input />
  <button
    onClick={e => {
      e.preventDefault();
      alert("clicked");
    }}
  >
    click
  </button>
</form>
注意,submit事件在元素本身上触发,而不是在元素内部或任何元素上触发。(提交的是表格,而不是按钮。)

因为它们在技术上是独立的事件。单击事件捕获鼠标单击事件。但是,有很多方法可以不用单击就提交表单。从另一个JavaScript触发器,使用键盘返回等。。。所以它们是不同的。如果Submit上有多个按钮或输入,则默认情况下会提交整个表单,而onclick只能用于更动态的事情,如滑出和其他事情,但它确实存在于您编写的函数中。
Note that the submit event fires on the <form> element itself, and not on any <button> or <input type="submit"> inside it. (Forms are submitted, not buttons.)