簡體   English   中英

表單onSubmit vs onClick

[英]form onSubmit vs onClick

<form>
  <input />
  <button
    onClick={e => {
      e.preventDefault();
      alert("clicked");
    }}
  >
    click
  </button>
</form>

編輯zrzz6pj7kx

如果我將onClick處理程序移動到formonSubmit ,我將得到完全相同的行為。

我用Google搜索的大多數答案都表明, onClick不會對通過return鍵按下提交表單作出反應,但這並不是如在codesandbox示例中看到的那樣。

除了處理DOM操作/事件模擬時,它們何時會表現不同?

從根本上說,這取決於瀏覽器。 某些瀏覽器可能會在按回車鍵提交表單時調用提交按鈕的onClick ,但標准並未強制要求。 如果選擇了提交按鈕,其他人可能只在按下返回時調用onClick 除非手動點擊按鈕,否則其他人可能不會觸發它。

如果您想要最佳的可移植性,請使用onSubmit來實現它的設計目的:檢測表單提交。

另一個主要區別是事件的目標。

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.)

https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/submit_event

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM