dom_dom0500_009

フォーム送信時、JavaScriptで検証して不正なら送信を止める。form.addEventListener(“submit”, e => { if (!valid) ( A ); }); とし、HTML側でブラウザ標準バリデーションを無効にするには form に ( B ) 属性を付ける。

解答

A: e.preventDefault()
B: novalidate

解説

送信イベントで preventDefault() すればサーバへ送られない。novalidate はHTMLの組み込み検証を無効化し、JS主導で制御できる。

使用例(サンプルコード)

[ html ]

<form id="f" novalidate>
  <input id="email">
  <button>送信</button>
</form>
<script>
f.addEventListener("submit", e => {
  const valid = /@/.test(email.value);
  if (!valid) { e.preventDefault(); alert("メールが不正"); }
});
</script>