1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

備忘録:HTML送信時における処理実行順

Last updated at Posted at 2022-12-01

経緯

onclick, onsubmitの違いとHTML属性(論理属性)の判定順を正確に理解しておらず、
共通した実装に至るまで遠回りして沼ったのでメモ書き

HTMLソースコードの一例

<form onsubmit="return bbb()" action="">
    <input type="" required />
    <button type="submit" onclick="aaa()"/>
</form>

判定処理順

  1. submitボタン押下
  2. onclick判定
  3. requiredなどinputタグに記載された処理
  4. onsubmit判定
  5. formタグのaction実行
  6. action先の実行

考察

・論理属性によるエラー文・エラー処理
・jsでのエラーチェック
どちらを優先するか、どこまで共通実装されているかを判断基準に
onsubmit, onclickの使い分けにおけるコード実装とするのが良さそう

例:
required属性が設定されているが、アラートで文字を表示させたい時
onsubmitではなく、onclickで処理させる

<form id="myForm">
    <input type="" required>
    <button type="submit" onclick="validate()">
</form>
<script>
function validate() {
    const form = document.getElementById('myForm');
    if (!form.checkValidity()) {
        alert('入力項目が不足してます。');
    }
}
</script>
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?