【发布时间】:2018-11-03 02:19:27
【问题描述】:
<form>
<input />
<button
onClick={e => {
e.preventDefault();
alert("clicked");
}}
>
click
</button>
</form>
如果我将onClick 处理程序移动到form's onSubmit,我将得到完全相同的行为。
我在 Google 上搜索的大多数答案都表明,区别在于 onClick 不会对通过 return 按键提交表单做出反应,但正如代码框示例中所见,情况并非如此。
除了处理 DOM 操作/事件模拟时,它们的行为何时会有所不同?
【问题讨论】:
-
因为它们在技术上是独立的事件。单击事件捕获鼠标单击事件。但是,有很多方法可以在不点击的情况下提交表单。从另一个 JavaScript 触发器,使用键盘返回等......所以它们是不同的。
-
如果有多个按钮或输入,onsubmit默认提交整个表单,onclick可以但用于更动态的东西,如滑出之类的东西,但它确实在你写的函数中。
标签: javascript html forms reactjs